最后版主给清楚的分析了索引的代价:index blevel + index leaf blocks*index selectivity + clustering factor*table selectivity (ix_sel_with_filters).
index blevel :索引的层数,多半为2,有时会有3或4
index leaf blocks:索引页块数。
index selectivity :索引的可选择数.就是通过索引要选出百分之多少的数据。
table selectivity:表选择数。暂时还不太知道。
clustering factor:集群因子。此数表示索引中按照顺序排列的数据块对应表的数据块是否也是有序的。此值越大说明越大说明越无序,越小说明越有序。另外次数最大值是行数。最小值是表中的数据块数。
clustering factor举例:
表test ,9行数据分别放在A,B,C三个块中。
例1:如果块
A
1,2,3
B
1,2,3
C
1,2,3
说明表占用3个块,集群因子是9
例2:
A
1,1,1
B
2,2,2
C
3,3,3
说明表占用3个块,集群因子是3
此两种情况对于表来说都是3个块,全表查询都一样。但是走索引的话,由于索引对应的行在多个块中,所以索引的代价会不一样。
到时候CBO会根据算得代价选择全表或者索引
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9524377/viewspace-673875/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9524377/viewspace-673875/