oracle 聚簇因子的一些理解
2016-06-27 08:29
302 查看
--查看t2表行数据库分布
select id,dbms_rowid.rowid_relative_fno(rowid)||'_'||dbms_rowid.rowid_block_number(rowid) location from t2 order by location,id;
--索引统计收集
exec dbms_stats.gather_table_stats(ownname=>'SYS',tabname=>'T2',method_opt=>'for all columns size auto',cascade=>true,
estimate_percent=>100);
----查看索引集群因子;
select * from dba_indexes where table_name=upper('t1');
select table_name, owner,num_rows from dba_tables where table_name in ('T1', 'T2')
理想情况集群因子数大小等于表数据快数;
糟糕情况集群因子数大小等于表数据行数;意味着每通过索引访问一次数据就要有一次io获取一个block 来获取对应数据行;
高效索引是一个索引快里对应的数据行已经在第一次访问时就已经被加载到buffer pool 中,当访问索引中第二行数据时,
直接读buffer pool 中的db block即可。不需要额外的IO。
聚簇因子值大小对cbo判断是否走相关的索引起着至关重要的作用。
聚簇因子描述数据在表中的随机分布程度。
---手动修改集群因子
exec dbms_stats.set_index_stats(ownname=>'SYS',indname=>'IDX_T1',clstfct=>2000000000,no_invalidate=>false)
select id,dbms_rowid.rowid_relative_fno(rowid)||'_'||dbms_rowid.rowid_block_number(rowid) location from t2 order by location,id;
--索引统计收集
exec dbms_stats.gather_table_stats(ownname=>'SYS',tabname=>'T2',method_opt=>'for all columns size auto',cascade=>true,
estimate_percent=>100);
----查看索引集群因子;
select * from dba_indexes where table_name=upper('t1');
select table_name, owner,num_rows from dba_tables where table_name in ('T1', 'T2')
理想情况集群因子数大小等于表数据快数;
糟糕情况集群因子数大小等于表数据行数;意味着每通过索引访问一次数据就要有一次io获取一个block 来获取对应数据行;
高效索引是一个索引快里对应的数据行已经在第一次访问时就已经被加载到buffer pool 中,当访问索引中第二行数据时,
直接读buffer pool 中的db block即可。不需要额外的IO。
聚簇因子值大小对cbo判断是否走相关的索引起着至关重要的作用。
聚簇因子描述数据在表中的随机分布程度。
---手动修改集群因子
exec dbms_stats.set_index_stats(ownname=>'SYS',indname=>'IDX_T1',clstfct=>2000000000,no_invalidate=>false)
相关文章推荐
- oracle exp 命令导出对象
- Oracle创建用户与表空间
- oracle高效分页
- union和union all的区别
- 记录oracle11g使用过程中遇到的一些问题,会持续更新。
- ORACLE-023:令人烦恼的 ora-01722 无效数字
- ORACLE-023:令人烦恼的 ora-01722 无效数字
- ORACLE-023:令人烦恼的 ora-01722 无效数字
- Oracle 创建表空间,用户,并赋予DBA权限
- Oracle数据库的导出和导入
- Oracle用户被锁原因及办法
- VirtualBOX上SLES 11 SP3+Oracle 11gR2 RAC安装与部署图解
- oracle 查询表的索引
- Greenplum的Oracle兼容性函数
- oracle 分库分表(sharding)
- 基于ORACLE的斐波纳契数列递归算法
- Oracle 10G RAC一节点系统重做后修复
- Oracle 10G RAC一节点系统重做后修复
- Oracle查询昨天的记录
- Oracle 获取当前日期及日期格式