Chinaunix

标题: 关于oracle的优化问题! [打印本页]

作者: shanhan    时间: 2007-12-15 12:19
标题: 关于oracle的优化问题!
对于9i或其以上的版本,大家都知道oracle优化常用的两个选择CBO和RBO,而通常大家用的都是CBO。
对于生产系统而言,例如我所在的项目是本省的集中计费系统,需要经常去抓sql优化,但令人烦恼的是执行计划经常失效,也就是用不多索取。
想问问大家碰到这些问题是怎么解决的?
我一般都是分析表,采样5%左右。
但不是所有的表都分析就好,也不是分析次数越多越好。
大家有什么实际经验可以讨论讨论,谢谢了!
作者: dhhb    时间: 2007-12-15 14:07
1.写一个自动分析表的存储过程,再建立一个配置表,把需要分析的表配置进去,按照配置的时间去定时分析.
2.高手建议一般采样值选取25%,我都是按照100%来分析的.
作者: shanhan    时间: 2007-12-17 09:31
我们都是采样5%,写成存储过程只能用定时器来吧,怎么能按照配置表的时间去分析呢?
谢谢楼上!
作者: bigmoyo    时间: 2007-12-17 11:17
标题: ——就用 shell 脚本也行呀
——既然是省一级计费,数据量很大,那么5%的抽样分析我觉得真的是太小了。
——对于表分析的建议可以在深夜例如3:30点,把常用大表都给分析下下。


——跟你们的表的设计也有关系,比如历史表一般是不怎么动的了,当前表则插入很频繁,如果这两者混在一起,那么分析了效果也不见得好。
——另外,象表数据都上亿甚至10亿条的话,确实也挺麻烦的,或许你优化了一个SQL,但不小心发现引发了曾优化好的别的SQL又不行了。
——建议如果全面优化的话,需要把各表情况都好好了解一下下。
作者: shanhan    时间: 2007-12-17 14:51
楼上说的我们就遇到了,不是分析越多越好。分析多了反而其它sql执行又有问题了。
作者: shanhan    时间: 2007-12-21 14:31
大家还有什么好的维护经验没有?




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2