`
wsql
  • 浏览: 12302022 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

聚簇因子

 
阅读更多

1、聚簇因子(clustering_factor):是使用B树索引进行区间扫描的成本很重要因素,反映数据在表中分布的随机程度


2、聚簇因子的计算方法:
  ①扫描索引
  ②比较某行的ROWID和前一行的ROWID,如果这两个ROWID不属于同一个数据块,那么聚簇因子增加1
  ③整个索引扫描完毕后,就得到了该索引的集群因子

--对选择最优查询路径影响最大的只有列的选择率和聚簇因子

3、实验测试

create table t1 as
select trunc((rownum-1)/100) id,
rpad(rownum,100) t_pad
from dba_source
where rownum <= 10000;
create index t1_idx1 on t1(id);
exec dbms_stats.gather_table_stats(user,'t1',method_opt=>'FOR ALL COLUMNS SIZE 1',cascade=>TRUE);

create table t2 as
select mod(rownum,100) id,
rpad(rownum,100) t_pad
from dba_source
where rownum <= 10000;
create index t2_idx1 on t2(id);
exec dbms_stats.gather_table_stats(user,'t2',method_opt=>'FOR ALL COLUMNS SIZE 1',cascade=>TRUE);
select count(*) ct from t1 where id = 1 ;
select count(*) ct from t2 where id = 1 ;

--索引的聚簇因子
select t.table_name||'.'||i.index_name idx_name,
i.clustering_factor, t.blocks, t.num_rows
from user_indexes i, user_tables t
where i.table_name = t.table_name
and t.table_name in ('T1','T2')
order by t.table_name, i.index_name;

--计算索引的聚簇因子
select t.table_name||'.'||i.index_name idx_name,
i.clustering_factor, t.blocks, t.num_rows
from all_indexes i, all_tables t
where i.table_name = t.table_name
and t.table_name = 'EMPLOYEES'
and t.owner = 'HR'
and i.index_name = 'EMP_DEPARTMENT_IX'
order by t.table_name, i.index_name;

select department_id, last_name, blk_no,
lag (blk_no,1,blk_no) over (order by department_id) prev_blk_no,
case when blk_no != lag (blk_no,1,blk_no) over (order by department_id)
or rownum = 1
then '*** +1'
else null
end cluf_ct
from (
select department_id, last_name,
dbms_rowid.rowid_block_number(rowid) blk_no
from hr.employees
where department_id is not null
order by department_id
);




**********本博客所有内容均为原创,如有转载请注明作者和出处!!!**********
Name: guoyJoe

QQ: 252803295

Email: oracledba_cn@hotmail.com

Blog: http://blog.csdn.net/guoyJoe

ITPUB: http://www.itpub.net/space-uid-28460966.html

OCM: http://education.oracle.com/education/otn/YGuo.HTM
_____________________________________________________________
加群验证问题:哪些SGA结构是必需的,哪些是可选的?否则拒绝申请!!!

答案在:http://blog.csdn.net/guoyjoe/article/details/8624392

Oracle@Paradise  总群:127149411

Oracle@Paradise No.1群:177089463(已满)

Oracle@Paradise No.2群:121341761

Oracle@Paradise No.3群:140856036



分享到:
评论

相关推荐

    oracle索引说明.pdf

    如果聚簇因子差,意味着索引中的键值顺序与数据行的物理顺序不匹配,这可能会影响索引的效率。在某些情况下,可能需要重建索引来改善聚簇因子,以提高查询性能。 5. 更新操作与性能: 由于数据库的更新操作通常...

    海量数据库解决方案_韩国_李华植

    1.1.2 聚簇因子(cluster factor)10 1.1.3 影响读取的因素13 1.1.3.1 大范围数据读取的处理方案14 1.1.3.2 提高聚簇因子的手段17 1.2 索引组织表(index-organized table)19 1.2.1 堆表和索引组织表的比较19 1.2.2 ...

    海量数据库解决方案_韩国_李华植_Part02

    1.1.2 聚簇因子(cluster factor)10 1.1.3 影响读取的因素13 1.1.3.1 大范围数据读取的处理方案14 1.1.3.2 提高聚簇因子的手段17 1.2 索引组织表(index-organized table)19 1.2.1 堆表和索引组织表的比较19 1.2.2 ...

    影响Oracle查询效率的部分因素研究.pdf

    聚簇因子过大,表示索引与表记录的对应关系差,此时可能需要对索引进行重新组织。过滤因子则用于预测查询将访问的数据块数量,根据这个因子,Oracle可以评估使用索引的效率。 综上所述,为了优化Oracle查询效率,...

    MySQL数据库技术分享 MySQL查询优化浅析 共32页.pdf

    然而,当前的成本模型并未考虑Oracle中的聚簇因子(Cluster Factor)等高级特性,这可能会影响某些复杂查询的优化效果。 总的来说,MySQL查询优化是一个涉及多方面因素的复杂过程,包括查询优化器的工作流程、代价...

    《Oracle DBA手记——数据库诊断案例与性能优化实践》第一章 to be continued

    ├─第一篇 DBA工作手记 │ 01.Eygle的DBA工作手记 │ 02.Yangtingkun的DBA工作手记 │ 03.老熊的DBA手记 │ 04.BanPing的DBA工作...聚簇因子、柱状图与执行计划 04.表碎片及分页查询优化 05.一次排序的调整与优化

    ORACLE索引的认识

    - **核心概念**:在评估索引扫描成本时,Oracle会考虑两个重要因素——聚簇因子(Clustering Factor, CF)和过滤因子(Filtering Factor, FF)。 - **聚簇因子(CF)**:指每个索引块对应的平均数据块数。CF反映了...

    Oracle B-Tree Index Internals

    - **高聚簇因子**:“如果索引的聚簇因子较高,则可能需要考虑重建索引。”——Don Burleson, 2003年12月 - **二叉树高度增加**:“二叉树的高度主要取决于表的大小以及索引列值范围较窄的情况。”——Richard ...

    Oracle Index Internals.pdf

    - **高聚簇因子误区**:澄清了高聚簇因子并不总是意味着需要重建索引。 - **包含NULL值的列是否被索引**:解释了当列含有NULL值时,它们是否会被索引。 - **索引块拆分内部原理**:探讨了索引块拆分的过程及原理。 -...

    关于ORACLE数据库中索引的几点讨论.pdf

    - **CF(聚簇因子)**:它反映了每个索引块对应的平均数据块数。如果索引项在数据块中的分布很均匀,CF值较低,反之则较高。较高的CF意味着使用索引可能需要读取更多的数据块。 - **FF(过滤因子)**:这是选择...

    oracle索引说明[参照].pdf

    当索引的层数增加、聚簇因子差(实际数据分布与索引顺序不一致)或者删除的索引空间未被重用时,可能需要对索引进行重建以保持其效率。 索引的基础操作是一个更新由一个删除和一个插入组成,这意味着每次数据更改,...

    王重东Oracle-EBS R12DBA维护笔记

    王重东可能探讨了不同类型的索引(如位图索引、组合索引、函数索引)以及索引压缩、聚簇因子、索引与min/max函数等高级主题。 12. **系统管理工具** 王重东可能介绍了如何使用JDBC优化表连接,服务器端语句缓存,...

    Oracle索引质量介绍和分析脚本分享

    - **聚簇因子(Cluster Factor)**:聚簇因子是衡量索引是否有效地将相关行聚集在一起的指标。当索引的聚簇因子接近1时,表示索引键值的顺序与表中数据的物理顺序相近,这通常意味着较高的索引质量。反之,如果聚簇...

    oracle-认证之管理统计信息

    - **指标**:叶块数量(LEAF_BLOCKS)、等级(BLEVEL)以及聚簇因子(CLUSTERING_FACTOR)。 - **存储位置**:这些信息存储在`DBA_INDEXES`视图中。 - **作用**:帮助优化器评估使用索引访问的成本。 ##### 4. 系统计统计...

    SQL Server索引技术.pdf

    聚簇索引和非聚簇索引有着不同的体系结构和适用情况,创建合适的索引并适当设置填充因子,是优化数据库性能的有效手段。在设计和优化数据库系统时,必须根据实际的数据访问模式和查询类型,仔细考虑是否使用以及如何...

    Oracle性能优化培训

    - 聚簇因子表示索引条目与实际数据之间的距离,其值越低表明索引的效率越高。 - 动态采样技术可以使Oracle更精确地估算查询成本,从而选择更优的执行计划。 - **监控索引** - 维护索引的开销可以通过`V$OBJECT_...

Global site tag (gtag.js) - Google Analytics