易截截图软件、单文件、免安装、纯绿色、仅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子句中使用频率相同,则将最具选择性的字段排在最前面,将


相关文档:

WindowsXP下ORACLE 10g安装与操作图解

 出处:http://hi.baidu.com/vcy168/blog/item/877945d908c3d52611df9ba0.html
Windows下ORACLE 10g安装与操作图解
刚刚接触ORACLE的人来说,从那里学,如何学,有那些工具可以使用,应该执行什么操作,一定回感到无助。所以在学习使用ORACLE之前,首先来安装一下ORACLE 10g,在来掌握其基本工具。俗话说的好:工欲善其事 ......

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数据库是一种大型关系型的数据库,我们知道当使用一个数据库时,仅仅能够控制哪些人可以访问数据库,哪些人不能访问数据库是无法满足数据库访问控制的。DBA需要通过一种机制来限制用户可以做什么,不能做什么,这在Oracle中可以通过为用户设置权限来实现。权限就是用户可以执行某种操作的权利。而角色是为了方便DBA管 ......

Oracle中TO_DATE格式

 TO_DATE格式(以时间:2007-11-02   13:45:25为例)
  
        Year:     
        yy two digits 两位年              ......

Oracle中的covering index

 CSDN里的一个朋友问到了这个索引覆盖的概念。 这个概念很小的知识点,在我的论坛里有解释“”,不过作为Oracle版主,不能在回帖里加上网外的地址链接,所以这里在CSDN里帖上一份
比如有复合索引为3个字段:f1 + f2 + f3,请问: 
1: select f1, f2, f3, f4 from table where f1 = 'XX' and f2 = 'XX'. ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号