索引聚簇因子,表示了索引所指向的数据在物理实际存储上的紧簇度,该数值越大,则表示越不紧簇,该值越小,则表示该索引非常紧簇。
该概念与索引相关。
比如,有如下一个表的数据存储结构:
数据块一 | 数据块2 |
100 Steven King SKING ... 156 Janette King JKING ... 115 Alexander Khoo AKHOO ... . . . 116 Shelli Baida SBAIDA ... 204 Hermann Baer HBAER ... 105 David Austin DAUSTIN ... 130 Mozhe Atkinson MATKINSO ... 166 Sundar Ande SANDE ... 174 Ellen Abel EABEL ... |
149 Eleni Zlotkey EZLOTKEY ... 200 Jennifer Whalen JWHALEN ... . . . 137 Renske Ladwig RLADWIG ... 173 Sundita Kumar SKUMAR ... 101 Neena Kochar NKOCHHAR ... |
索引一 INDEX_NAME:
Abel,block1row1 Ande,block1row2 Atkinson,block1row3 Austin,block1row4 Baer,block1row5
索引二 EMP_EMP_ID_PK:
100,block1row50 101,block2row1 102,block1row9 103,block2row19 104,block2row39 105,block1row4
则这两个索引的聚簇因子为:
SQL> SELECT INDEX_NAME, CLUSTERING_FACTOR 2 FROM ALL_INDEXES 3 WHERE INDEX_NAME IN ('EMP_NAME_IX','EMP_EMP_ID_PK'); INDEX_NAME CLUSTERING_FACTOR -------------------- ----------------- EMP_EMP_ID_PK 19 EMP_NAME_IX 2
显然,EMP_NAME_IX索引聚簇因子要小很多,因为相邻的索引KEY之间,存取数据位于同一块数据块(data block)上,
检索数据时IO操作消耗很小,
基本可以忽略不计!!
最后贴上索引聚簇因子的作用:
The clustering factor is relevant for index scans because it can show:
-
Whether the database will use an index for large range scans
-
The degree of table organization in relation to the index key
-
Whether you should consider using an index-organized table, partitioning, or table cluster if rows must be ordered by the index key
-----参考自ORACLE的官方手册
本文转自 vfast_chenxy 51CTO博客,原文链接:http://blog.51cto.com/chenxy/742223,如需转载请自行联系原作者