统计信息采集实施策略
来源:互联网 发布:佩里西奇 数据 编辑:程序博客网 时间:2024/06/09 12:40
定制设计信息采集方案,可考虑如下实施策略。
(1)根据数据库规模和数据变化情况,可考虑在数据库、schema、表、分区表等不同级别采集统计信息
(2)设置并行度,提高统计信息采集的效率
(3)进行统计信息采集的目的是保证执行路径的最优化。因此,不一定需要全面采集统计信息,只要执行路径达到最优化,可设定采集率参数estimate_percent
(4)重点对最消耗资源的SQL语种所涉及表的进行统计信息采集
(5)采集表统计信息时,同时采集索引统计信息
(6)对分区表可考虑只对指定分区进行统计信息采集。包括设置granularity=>'PARTITION'
(7)考虑block_sample=>true,method_opt=>'FOR ALL INDEXED' columns等参数,从而提高采样准确性,并减少不必要的统计信息,降低资源消耗
(8)只对没有统计信息或过期统计信息的表进行采集,即options=>'GATHER EMPTY',或options=>'GATHER STALE'
(9)对于字段值分布很畸形(skewed)的表,进行数据分布统计.
(10)合理使用10g统计信息采集方面的新特性
(11)编写统计信息采集工作的脚本
统计信息采集具体方法
Oracle提供了丰富的统计信息采集方法。
(1)数据库级信息采集
建议数据库规模较小、数据变化比较大,而且时间和资源充裕的系统,在整个数据库级采集统计信息。例如:
exec dbms_stats.gather_database_stats(estimate_percent=>10,degree=>8,cascade=>true,granularity => 'ALL');
(2)schema信息采集
exec dbms_stats.gather_schema_stats(ownname=>'CLAS',estimate_percent=>10,degree=>8,cascade=>true,granularity => 'ALL');
(3)表级统计信息采集
建议对数据量较大、数据变化也比较大的表,在表级进行统计信息采集。例如:
exec dbms_stats.gather_table_stats(ownname=>'CLAS',tabname=>'表名',estimate_percent=>10,degree=>8,cascade=>true,granularity => 'ALL');
(4)分区级统计信息采集
建议对数据量较大、数据变化也比较大的分区表,在分区级进行统计信息采集,特别是只采集数据变化较大的分区。例如:
exec dbms_stats.gather_table_stats
(ownname=>'CLAS',tablename=>'表名',partname='分区名',estimate_percent=>10,degree=>8,cascade=>true,granularity => 'PARTITION'
,method_opt=>' FOR ALL INDEXED COLUMNS');
(5)数据字典统计信息采集
exec dbms_stats.gather_dictionary_stats
(estimate_percent=>100,degree=>8,cascade=>true,granularity => 'ALL');
(6)动态性能表统计信息采集
exec dbms_stats.gather_fixed_objects_stats;
(7)硬件统计信息采集
exec dbms_stats.gather_system_stats('START');
在典型业务结束之后,执行如下语句:
exec dbms_stats.gather_system_stats('STOP');
注:它也是通过AWR进行采集的。
- 统计信息采集实施策略
- 公交客车客流统计信息采集技术研究
- 统计信息动态采集级别的解释
- 灌入大量数据后手工采集统计信息的重要性
- 信息采集
- 信息采集
- 信息采集
- 信息采集
- 强制实施密码策略
- 域控下常用策略实施
- SAP软件实施之实施策略
- 使用dbms_stat采集统计信息时estimate_percent和cascade的默认值
- Oracle 锁定临时表统计信息及锁住后是否能用动态采集的hint
- Microsoft2005的最佳实施策略
- 数据库分表实施策略
- 统计信息!
- 统计信息
- 统计信息
- android_系统三大核心:AmS/WmS/View
- shell下同时读取多个文件的方法
- 遍历所有时区的代码[windows]
- Auto Layout 进阶
- Android之旅 -- Recovery相关原理分析
- 统计信息采集实施策略
- Thinkphp2.0 中setInc函数和SetDec函数总结
- Linux Centos 查看CPU信息、机器型号等硬件信息
- 网上找得哲学家就餐问题的一段据说不错的代码
- gossip(转载)
- 使用VC6.0在32位平台上开发64位程序
- .Net使用HttpWebRequest构造POST请求(带文件)_备忘
- 第一篇技术贴(Android WebView)
- Virtualbox Usage