易截截图软件、单文件、免安装、纯绿色、仅160KB

Oracle索引笔记

 一.B-Tree索引(b-tree index)
1. 选项择索引字段的原则: 
在WHERE子句中最频繁使用的字段 
联接语句中的联接字段 
选择高选择性的字段(如果很少的字段拥有相同值,即有很多独特值,则选择性很好) 
ORACLE在UNIQUE和主键字段上自动建立索引 
在选择性很差的字段上建索引只有在这个字段的值分布非常倾斜的情况下下才有益(在这种情况下,某一,两个字段值比其它字值少出现很多) 
不要在很少独特值的字段上建B-TREE索引,在这种情况下,你可以考虑在这些字段上建位图索引.在联机事务处理环境下,所由并发性非常高,索引经常被修改,所以不应该建位图索引 
不要在经常被修改的字段上建索引.当有UPDATE,DELETE,INSETT操作时,ORACLE除了要更新表的数据外,同时也要更新索引,而且就象更新数据一样,或产生还原和重做条目 
不要在有用到函数的字段上建索引,ORACLE在这种情况,优化器不会用到索引,除非你建立函数索引 
可以考虑在外键字段上建索引,这些索引允许当在主表上UPDATE,DELETE操作时,不需要共享子表的锁,这非常适用于在父表和子表上有很多并发的INSERT,UPDATE和DELETE操作的情况 
当建立索引后,请比较一下索引后所获得的查询性能的提高和UPDATE,DELETE,INSERT操作性能上的损失,比较得失后,再最后决定是否需建立这个索引 
2. 选择建立复合索引(composite index) 
复合索引的优点: 
改善选择性:复合索引比单个字段的索引更具选择性 
减少I/O:如果要查询的字段刚好全部包含在复合索引的字段里,则ORACLE只须访问索引,无须访问表 
什么情况下优化器会用到复合索引呢? 
(a)当SQL语句的WHERE子句中有用到复合索引的领导字段时,ORACLE优化器会考虑用到复合索引来访问. 
(b)当某几个字段在SQL语句的WHERE子句中经常通过AND操作符联合在一些使用作为过滤谓词,并且这几个字段合在一起时选择性比各自单个字段的选择性要更好时,可能考虑用这几个字段来建立复合索引. 
(c)当有几个查询语句都是查询同样的几个字段值时,则可以考虑在这几个字段上建立复合索引. 
复合索引字段排序的原则: 
确保在WHERE子句中使用到的字段是复合索引的领导字段 
如果某个字段在WHERE子句中最频繁使用,则在建立复合索引时,考虑把这个字段排在第一位(在CREATE INDEX语句中) 
如果所有的字段在WHERE子句中使用频率相同,则将最具选择性的字段排在最前面,将


相关文档:

oracle 表空间操作

oracle表空间操作详解
  1
  2
  3作者:   来源:    更新日期:2006-01-04 
  5
  6 
  7建立表空间
  8
  9CREATE TABLESPACE data01
 10DATAFILE '/ora ......

Oracle:查找表的主键,外键,唯一性约束,索引

1、查找表的所有索引(包括索引名,类型,构成列):
select t.*,i.index_type from user_ind_columns t,user_indexes i where t.index_name = i.index_name and t.table_name = i.table_name and t.table_name = 要查询的表
2、查找表的主键(包括名称,构成列):
select cu.* from user_cons_columns cu, user_con ......

Oracle入门书籍推荐《转》

Oracle入门书籍推荐
链接:http://www.eygle.com/archives/2006/08/oracle_fundbook_recommand.html
很多朋友要我帮忙推荐一下Oracle的入门书籍,能够了解Oracle的基本概念、基本知识的那种。
我就免为其难,推荐几本。
首先我想强调的一点是,任何一本系统的Oracle书籍只要认真读下来,都会有不错的收获,读书最忌讳的 ......

Oracle 触发器

 
create table emp2_log(
 uname varchar2(20),
 action varchar(10),
 atime date
);
create or replace trigger trig
   after insert or delete or update on emp2 for each row  //绑在一张表上,before after 都可
以,before是 插数据之前,after是之后
begin
 &nb ......

oracle job 相关

begin
  sys.dbms_job.submit(job => :job,
                      what => 'p_apip_price_send;',
              &nbs ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号