Oracle 聚簇因子
来源:互联网 发布:mac打开terminal快捷键 编辑:程序博客网 时间:2024/05/16 02:15
简单来说,CLUSTERING_FACTOR反映的是通过索引扫描访问一张表,需要访问的表的数据块数量,即反映I/O的次数。这个CLUSTERING_FACTOR是如何计算出来的呢?
(1) 扫描索引结构;
(2) 顺序对比相邻索引条目的ROWID,如果两个ROWID属于不同数据块,那么CLUSTERING_FACTOR增加1;
(3) 整个索引扫描结束后,就可以得到该索引的聚簇因子数值。
了解了CLUSTERING_FACTOR的计算方法,我们可以得出以下两个极端的情况,即聚簇因子最大和最小的情况:
1 CLUSTERING_FACTOR最小时,其无限接近于表的BLOCKS数,该表是按照索引字段顺序存储的;
2 CLUSTERING_FACTOR最大时,其无限接近于 NUM_ROWS 数,该表是完全不按照索引字段顺序存储的。
SQL> select b.table_name, a.index_name, b.num_rows, b.blocks, a.clustering_factor from user_indexes a, user_tables b where b.table_name in('T_1','T_2') and a.table_name = b.table_name;
SQL> select num_rows,blocks,avg_row_len from user_tables where table_name='AB44';
SQL> select distinct_keys,clustering_factor,num_rows from USER_IND_STATISTICS WHERE table_name='AB44' and index_name='PK_AB44';
begin
dbms_stats.set_index_stats(ownname => 'NCSI',indname => 'PK_AB44',clstfct => '7800');
end;
通过查询聚簇因子发现,两个表的聚簇因子差别很大,基于rn的索引在rn是顺序排列的表中,clustering_factor的值相差很大。
在表中数据有时候属于无序状态,这个时候的CLUSTERING_FACTOR比较接近NUM_ROWS,说明如 果扫描整个表,每次都要根据Index来读取相应行的RowID,\
这个时候的IO操作很多,自然检索时间会比较长。如果数据有序的 话,CLUSTERING_FACTOR比较接近BLOCKS,说明相邻的数据在一个块中,减少了IO操作数量,
自然检索时间会大大降低
(1) 扫描索引结构;
(2) 顺序对比相邻索引条目的ROWID,如果两个ROWID属于不同数据块,那么CLUSTERING_FACTOR增加1;
(3) 整个索引扫描结束后,就可以得到该索引的聚簇因子数值。
了解了CLUSTERING_FACTOR的计算方法,我们可以得出以下两个极端的情况,即聚簇因子最大和最小的情况:
1 CLUSTERING_FACTOR最小时,其无限接近于表的BLOCKS数,该表是按照索引字段顺序存储的;
2 CLUSTERING_FACTOR最大时,其无限接近于 NUM_ROWS 数,该表是完全不按照索引字段顺序存储的。
SQL> select b.table_name, a.index_name, b.num_rows, b.blocks, a.clustering_factor from user_indexes a, user_tables b where b.table_name in('T_1','T_2') and a.table_name = b.table_name;
SQL> select num_rows,blocks,avg_row_len from user_tables where table_name='AB44';
SQL> select distinct_keys,clustering_factor,num_rows from USER_IND_STATISTICS WHERE table_name='AB44' and index_name='PK_AB44';
begin
dbms_stats.set_index_stats(ownname => 'NCSI',indname => 'PK_AB44',clstfct => '7800');
end;
通过查询聚簇因子发现,两个表的聚簇因子差别很大,基于rn的索引在rn是顺序排列的表中,clustering_factor的值相差很大。
在表中数据有时候属于无序状态,这个时候的CLUSTERING_FACTOR比较接近NUM_ROWS,说明如 果扫描整个表,每次都要根据Index来读取相应行的RowID,\
这个时候的IO操作很多,自然检索时间会比较长。如果数据有序的 话,CLUSTERING_FACTOR比较接近BLOCKS,说明相邻的数据在一个块中,减少了IO操作数量,
自然检索时间会大大降低
0 0
- ORACLE聚簇因子
- Oracle 聚簇因子
- Oracle indexclustering factor 索引聚簇因子
- Oracle 聚簇因子(Clustering factor)
- Oracle 聚簇因子(Clustering factor)
- Oracle 聚簇因子(Clustering factor)
- Oracle聚簇因子(clustering factor)
- Oracle 聚簇因子(Clustering factor)
- Oracle 聚簇因子概念及实验
- oracle 聚簇因子的一些理解
- oracle 聚簇因子对查询性能的影响
- 深入理解Oracle索引(16):聚簇因子
- 聚簇因子
- 聚簇因子
- 聚簇因子
- 聚簇因子
- 聚簇因子
- 聚簇因子
- 封装select标签封装数据源、参数及其级联
- Windows下IntelliJ IDEA中调试Spark Standalone
- grep -q用于if逻辑判断
- 用WDK命令行CMD编译一个驱动程序时,关于环境变量的记录
- uva1368(贪心)
- Oracle 聚簇因子
- 翻转句子中单词顺序
- uva1339(贪心)
- CSS3 图片滤镜
- java创建文件和目录
- 03-Git常用命令演示、冲突演示
- [LeetCode]Longest Substring Without Repeating Characters
- Annotation(一)——注解开发介绍
- UAC技巧:使 Windows 内置程序默认以管理员权限运行