日期:2014-05-16  浏览次数:20485 次

oracle 索引小结
  1. Oracle 9i以前的复合索引:
    如果索引有多个字段组成,索引中每个字段对于查询的价值是不同的,通常最常用到的查询字段应该放在最前面;或者相同查询几率的字段根据字段内容的相异程度(相异程度越高,索引效率越高)来决定。即:建索引的时候除了要考虑前置列,最好还要考虑DISTINCT数量最多的建为索引。??
    ??? 一个原则:如果在where条件中有对索引中第一个字段的查询,索引是可以被使用的;但是如果在where条件中没有对索引中第一个子段的查询而只有后面的字段的话,索引是无法使用的。
    ??? 即:9I之前:那么要考虑你的复合索引的第一列必须在你的查询中被引用,这样你的复合索引才会起作用,否则这个索引就不起作用,照样是全表访问。
  2. oracle 9i以后的复合索引:?
    无所谓必须使用索引中的第一个字段了。
    9I之后:就不受上面条件的限制,怎么建都行。
  3. oracle在一个复合索引中,最多可以由多少个列?
    组合索引最多可放置32个列,所有列得总尺寸不能超过db_block_size得1/3.