`
sangei
  • 浏览: 329365 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

[转]oracle的复合索引两个知识点

阅读更多

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

 


oracle在一个复合索引中,最多可以由多少个列?
组合索引最多可放置32个列,所有列得总尺寸不能超过db_block_size得1/3.

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics