SQLserver锁和事务隔离级别的比较与使用(转)
对象① 锁:每条SQL语句② 隔离:事务锁①并发问题丢失更新未确认的读取(脏读)不一致的分析(非重复读):多次读取相同的数据(行)不一致(其他用户更改update)幻像读:多次读取有不存在和新增的数据(其他用户插入insert或删除delete)隔离级别隔离级别脏读不可重复读取幻像说明未提交读(read uncommitted)是是是如果其他事务更新,不管是否提交,立即执行提交读(read committed默认)否是是读取提交过的数据。如果其他事务更新没提交,则等待可重复读(repeatable read)否否是查询期间,不允许其他事务update可串行读(seriali
Oracle体系结构:内存结构和进程结构
(一) 内存结构和进程结构 Oracle数据库的总体结构如下图: 1:Oracle实例(Instance) 在一个服务器中,每一个运行的Oracle数据库都与一个数据库实例相联系,实例是我们 访问数据库的手段。 实例在操作系统中用ORACLE_SID来标识,在Oracle中用参数INSTANCE_NAME来标识,它们两个的值是相同的。数据库启动时,系统首先在服务器内存中分配系统全局区(SGA), 构成了Oracle的内存结构,然后启动若干个常驻内存的操作系统进程,即组成了Oracle的 进程结构,内存区域和后台进程合称为一个Oracle实例。
DBMS_JOB 自动作业调度
能不能写一个存储过程 每隔一定时间自动运行(定时器) dbms_job.submit() 提交作业到系统 指定它什么时候运行 --DBMS_JOB 作业调度包(指定PL/SQL过程定时自动执行)--初始化参数init.ora job_queue_processes = 1 --作业队列进程的个数(最大36个) job_queue_interval = 60 --进程每隔多少时间扫描作业队列(60s) processes=150 --并发用户的数量 open_cursors =300 --存储过程中使用游标的数量 --DBMS_JOB包中的方法 procedure submit(job out binary_integer, what in varchar2, next_date in date default sysdate, interv
区分行级和语句级别触发器
-for each row--日志表create table log(id number ,ndate date);--触发器create or replace trigger emptr2after update on empfor each rowbegin--update--改后的值 :new.empno :new.ename--改前的值 :old.empno :old.ename--insert--只有:new--delete --只有:oldinsert into log values (:new.empno,sysdate);end;--修改1条记录,触发器触发几次??(1次)update emp set sal=2000 where empno=7369;--改14条记录 ,触发器工作几次??(14次)update emp set sal=1000 ; 14次--语句级create or replace trigger emptr2after update on emplo
错误号ORA-01536:space quota exceeded for table space
错误号ORA-01536:space quota exceeded for table space 'ALCATEL'的解决办法 三个解决办法,任你选择: (1) alter user USERNAME quota 100M on TABLESPACENAME; (2) alter user USERNAME quota unlimited on TABLESPACENAME; (3) grant unlimited tablespace to USERNAME; 先查询一下是否是有控制的,用这个语句 select * from dba_ts_quotas如果这个max_blocks字段的值不是 -1 那么表明是有限制的 我的用的解决方法是执行:alter user USERNAME quota unlimited on TABLESPACENAME;[@more@]
什么是聚簇索引
聚簇是根据码值找到数据的物理存储位置,从而达到快速检索数据的目的。聚簇索引的顺序就是数据的物理存储顺序,叶节点就是数据节点。非聚簇索引的顺序与数据物理排列顺序无关,叶节点仍然是索引节点,只不过有一个指针指向对应的数据块。一个表最多只能有一个聚簇索引。 但是建立聚簇索引的空间耗费比较大 对以后的增加删除的影响比较大,所以要在有必要的情况下用 2. 使用 Oracle 聚簇索引 聚簇是一种存储表的方法,这些表密切相关并经常一起连接进磁盘的同一区域。例如,表 BOOKSHELF 和BOOKSHELF_AUTHOR 数据行可以一起插入到称为
Decode 和 case 的 比较
本文讲述了Oracle-Decode()函数和CASE语句的比较。 首先,举2个简单的例子,简单对比一下这2者的区别。 1.CASE语句: SELECT CASE SIGN(5 - 5) WHEN 1 THEN 'Is Positive' WHEN -1 THEN 'Is Negative' ELSE 'Is Zero' END FROM DUAL;后台实现: if (SIGN(5 – 5) = 1) { 'Is Positive'; } else if (SIGN(5 – 5) = 2 ) { 'Is Negative'; }else { ‘Is Zero’ }2. Decode函数: SELECT DECODE(SIGN(5 – 5), 1, 'Is Positive', -1, 'Is Negative', ‘Is Zero’) FROM
Using Oracle's Parallel Execution Features
The full list of Oracle parallel execution features currently includes the following Parallel Query Parallel DML Parallel DDL Parallel Data Loading Parallel Recovery Parallel Replication How Parallel Execution Works Operations That Can Be Parallelized Oracle can parallelize operations that involve processing an entire table or an entire partition. These operations include: SQL queries requiring at least one full table scan or queries involving an index range scan spanning multiple partitions. Op
实时的ETL系统
搜狐博客 > 数据仓库(data warehouse) > 日志 2007-08-02 | 实时的ETL系统 实时ETL系统1. CRM的趋势 收集数据仓库里所有的客户信息,智能的选择和使用商业数据,持续从数据仓库收集客户信息,并且实现企业级数据的共享和同步。2. 纬度管理员的角色对数据集市里纬度表的定义、维护、确认纬度属性的作用。实时的数据仓库系统要为所有的用户最新和最有意义的数据,快速的向事实表加载数据,实时系统的巨大优势在于对关键纬度的同步更新,例如,客户、产品纬。纬度管理员不仅要为数据集市提供确认的数据,而且要使用一些方法对系统内的
事实表的类型
事务事实最为基本的业务操作视图是在各事务层次上的。这些事实表代表了在当时的时间点上出现的一个事件。只有事件发生后,才产生一条记录。周期性的快照事实与针对每个出现的事件事务事实表不一样,利用周期快照可以在每天、每周、每月结束时,为当时的行为进行拍照,然后在下一个周期拍另一个照片。累积性的快照事实表累计快照完全涵盖了一个事务或则离散产品的生命期的不确定的跨度。累积快照几乎总是具有多个代表出现在某生命期区间内的,可预见主要事件或则环节的日期标记。[@more@]