外键和索引
如果你的系统有主,外键引用关系,并且满足一下三个条件的任意一个,那么你应该考虑给外键字段创建索引,否则系统的性能可能会下降甚至阻塞。1 主表上有频繁的删除操作。2 主键上有频繁的修改操作。3 业务上经常会...
oracle基于函数的索引
基于函数的索引就把要做索引的字段的值先用function计算好,然后对计算好后的值作为索引的值再创建索引,广泛的用在很多场合,比如某个字段的值查询时大小写不敏感等可用此类型索引! 例如:创建表create t...
高水位
在全扫描期间,oracle将扫描高水位标记以下的所有块,即使它们不包含数据。这将影响全扫描的性能,尤其高水位以下的大部分块都是空时。为了证明这点,创建一张具有1 000 000行的表,对这张表用select count(*...
回滚产生的多少
1 insert产生最少的撤销数量,因为Oracle所有做的是记录要删除的行的ID2 update其次,oracle只是把要修改的项做了映照。3 delete最多,整行都要做映照。
级联删除
今天做了一个小实验,发现create table jl_1 (aa int primary key)create table jl_2 (aa int primary key references jl_1(aa) on update cascade)在sql Server2005中能够执行成功。在oracle中不能执行,报错。S...
truncate和delete的区别
TRUNCATE和DELETE有以下几点区别 1、TRUNCATE在各种表上无论是大的还是小的都非常快。如果有ROLLBACK命令DELETE将被撤销,而TRUNCATE则不会被撤销。 2、TRUNCATE是一个DDL语言,向其他所有的DDL语言一样,他将被...
事务的原子性
用一般的用户模式创建两张表create table t1(x int check(x>0));create table t2(cnt int);在t1上面创建触发器create or replace trigger t_triggerbefore insert or delete on t1for each rowbegin if(insert...
null对数据库的影响
在oracle中Null值既不等于Null,也不是不等于Null值。观察一下三种情况第一种情况SQL> select * from dual where null=null;未选定行第二种情况SQL> select * from dual where null !=null;未选定行第三种情况SQL...