集群因子

1. 优化器决定是否用索引的关键因素

  1.> 选择性

        参考:http://blog.csdn.net/eviswang/article/details/50674063

  2.> 集群因子

2. 概念

   集群因子(ClusteringFactor)是如果通过一个索引扫描一张表,需要访问的表的数据块的数量。

3. 集群因子的计算方法

(1) 扫描一个索引;

(2) 比较某行的ROWID和前一行的ROWID,如果这两个ROWID不属于同一个数据块,那么ClusteringFactor增加1;

(3) 整个索引扫描完毕后,就得到了该索引的ClusteringFactor。

4. 意义

如果ClusteringFactor接近于表存储的块数,说明这张表是按照索引字段的顺序存储的,如果集群因子接近于行的数量,那说明这张表不是按索引字段顺序存储的。在计算索引访问成本时,集群因子十分有用。Clustering Factor乘以选择性参数(selectivity)就是访问索引的开销。

 

如果这个统计数据不能反映出索引的真实情况,那么可能会造成优化器错误地选择执行计划。另外,如果某张表上的大多数访问是按照某个索引做索引扫描,那么将该表的数据按照索引字段的顺序重新组织,可以提高该表的访问性能。

 

    集群因子对执行范围扫描的SQL语句产生影响,如果集群因子接近数据块数量,满足查询要求的数据块的数量就可以少很多,这样也增加了数据块已经存在于内存中的可能性。相对于数据块数量大很多的集群因子,基于索引列的范围查询需要扫描更多的数据块。

5. 相关表

 Clustering_factor列是user_indexes,dba_indexes视图中的一列,该列反应了数据相对已索引的列是否显得有序。

SQL> select index_name,CLUSTERING_FACTOR from user_indexes;
 
INDEX_NAME                  CLUSTERING_FACTOR
-----------------------------------------------
PK_EMP                                               1
PK_DEPT                                             1
 
SQL>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值