|
原帖由 mihawk 于 2008-4-10 15:48 发表 ![]()
首先, 做为DBA, 拿到一个SQL, 要明白这个SQL走什么执行计划是最优的, 也就是说心理要先做一把人脑CBO.
然后, explain看看, 看CBO得到的执行计划跟你脑海里的是不是一样的.
如果不一样, 再查找原因.
有一个原则, CBO很官僚, 只认系统统计信息, 而不管数据真实的统计情况(除非动态sampling).
所以如果系统统计信息本来就失真, 那CBO基于这个统计信息得到的执行计划就很有可能是错误的.
DBA可以做的是确认执行计划错误是不是因为统计信息错误, 如果是, 那么修正统计信息, 直到执行计划正确.
good!!! |
|