当oracle执行计划预测行数与实际返回行数不等时怎么办,获取直方图后也不等

0
已邀请:
1

老头子 - 专注是唯一的捷径 2016-06-01 回答

不等的原因有很多,也很正常,预测行数基本没有准的。所以只能是个参考值,预测计划只有路径和IO信息有参考价值。
 
首先确定统计信息是否最新。
其次如果SQL逻辑复杂,绝大部分时候CBO的bug是导致不准的主要因素
还有一点,你说的直方图,直方图这个东西在12c之前只有两种,基本无法满足现在数据量过大的DB,所以如果数据量过大,你收集也没什么用。
 
优化的难点就在于如何找出高效且正确的路径,然后再通过改写、hint等办法使执行计划改变。
 
或者如果有能力的话可以通过模型、业务的角度上去高度优化SQL。
 
1

TianleCheng - 关注数据挖掘,社会计算 2016-06-01 回答

分析执行计划不准的切入点:
1/统计信息
2/直方图(统计信息的一部分,但很重要)
3/SQL写法
4/优化器版本
5/数据库bug
6/硬件性能差异(库迁移的情况,罕见)

要回复问题请先登录注册