定时收集统计信息对oracle性能的影响

[复制链接]
查看11 | 回复8 | 2011-11-1 16:24:04 | 显示全部楼层 |阅读模式
环境:Oracle 10gAix平台服务器硬件配置一般
业务系统是一套典型的OLTP系统,事务量非常大,dml执行数量很多,有几张表的数据量达到千万级别,在这几张表上面都建立了
相应的索引。这几张表以及索引的segment占用空间也很大,收集一次统计信息大概需要30分钟。
问1:是否有必要定时收集该表空间的统计信息,对查询sql的性能有无提高?
问2:禁用定时收集统计信息,并把该表空间的所有统计信息都删除,对oracle性能有什么影响?
回复

使用道具 举报

千问 | 2011-11-1 16:24:04 | 显示全部楼层
从Oracle10g用参数 STATISTIC_LEVEL=ALL | TYPICAL | BASIC,
TYPICAL收集自身管理的信息,适用于普遍情况,oracle不推荐BASIC。
1、新收集的统计信息不一定就优于以前的执行计划,如果新计划导致查询效率降低,还要使用dbms_stats.restore_table_stats恢复到以前的计划。
2、统计信息都删除?楼主是想重新生成执行计划吗?有可能和原来一样,有可能更坏,这个不好说。
建议:
1、楼主要实施的话一定在测试环境中模拟正式环境。
2、性能调优是件复杂的工作,楼主需要进行详细预研工作。

回复

使用道具 举报

千问 | 2011-11-1 16:24:04 | 显示全部楼层
dbwyl 发表于 2012-11-20 14:40
从Oracle10g用参数 STATISTIC_LEVEL=ALL | TYPICAL | BASIC,
TYPICAL收集自身管理的信息,适用于普遍 ...

谢谢dbwyl的回复,但是我还是有以下疑问:
1、以前听说过表和索引的统计信息不准确,有可能导致oracle选择sql的执行计划不是最优的。
2、问2中的统计数据都删除,完全不用统计数据,就让那些sql在这个环境下运行,这样也就会影响执行计划,也会导致查询sql的性能问题。
回复

使用道具 举报

千问 | 2011-11-1 16:24:04 | 显示全部楼层
不能一棒子打死,真的,还是有很多讲究的。
10g开始,Oracle基本都用cbo,需要有统计信息,如果木有,就要发生dynamic sampling,动态抽样搞出需要的统计信息。有些表非常不稳定,比如一些结果集的中间表,数据今天喝明天的没什么相同的,统计信息除非收集的很频繁,否则无效,这个就不用收集。在比如有些表很稳定的,作为只读表,或者就是外部表,统计信息不会变的,收集一次,锁住,一直用就可以了。比如系统的统计信息,在自动收集里并没有,如果系统负载变化挺大,还是要及时收集。
至于其他的嘛,还是要定时收集滴,保证不要让stale_stats变为yes。
同时收集的时候,注意要使用dbms_stats的包,不推荐使用analyze。
收集的时候,索引列要收集,索引统计信息要收集,复合索引要建立拓展统计信息,函数索引,也需要拓展统计信息。
注意并行度,注意取样大小。
注意,直方图,万不得已,不要收集,这个是收集统计信息中最耗费的。
回复

使用道具 举报

千问 | 2011-11-1 16:24:04 | 显示全部楼层
本帖最后由 20013011094 于 2012-11-20 19:54 编辑
收集统计信息时,并不一定对所有对象都收集。
记得 10g 的那个自动作业,收集统计信息时,也是数据变化超过10%(记得不清楚了)才收集。
数据总量经常发生变化的表要定期收集。
像一些参数表、控制表等,数据变化量很少的不用定期收集。
performance tuning guide 里描述的比较清楚(包括对外部表、临时表采取什么样的策略等)
用到时,可以查下。


回复

使用道具 举报

千问 | 2011-11-1 16:24:04 | 显示全部楼层
这个要试验多几次才知道。
回复

使用道具 举报

千问 | 2011-11-1 16:24:04 | 显示全部楼层
我的几个库,基本每天采集,关键的字段,都采集柱状图。
回复

使用道具 举报

千问 | 2011-11-1 16:24:04 | 显示全部楼层
ZALBB 发表于 2012-11-20 20:10
我的几个库,基本每天采集,关键的字段,都采集柱状图。

福大大是一开始就每天收集么
回复

使用道具 举报

千问 | 2011-11-1 16:24:04 | 显示全部楼层
db亮仔 发表于 2016-1-5 09:58
福大大是一开始就每天收集么

是的,关键表,关键字段,数据量大的,做分区,然后对最新分区,间隔几个小时采集一遍,
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行