oracle表的统计信息完全正确,执行计划无故改变。原厂人员如是回复

就像在电话里提到的那样,Oracle
内部的优化器是根据一系列的内部
算法基于表上的统计信息来产生执
行计划的。对于特别复杂的SQL语
句,Oracle的优化器有一定几率不
能得到最优的执行计划(因为机器
代码实际上是比较死板的,虽然得
到的执行计划按照内部的算法来看
是比较快的,但是实际上这个执行
计划可能在实际执行中比较慢)。
我们现在碰到的就是这种情况,虽
然表的统计信息是准的,但恰恰优
化器在基于这个统计信息使用内部
算法得到的执行计划是不优化的一
这是优化器的固有限制。这时候就
需要DBA/Oracle Support介入,或
者使用hint,或者使用SQL Profile来
固定更好的执行计划。(这就是
Oracle数据库存在SQL Profile/hint
技术的原因,并且需要DBA操作人
员的原因)

原文地址:https://www.cnblogs.com/iyoume2008/p/6713205.html