oracle表的统计信息完全正确,执行计划无故改变。原厂人员如是回复
2017-04-15 09:38
323 查看
就像在电话里提到的那样,Oracle
内部的优化器是根据一系列的内部
算法基于表上的统计信息来产生执
行计划的。对于特别复杂的SQL语
句,Oracle的优化器有一定几率不
能得到最优的执行计划(因为机器
代码实际上是比较死板的,虽然得
到的执行计划按照内部的算法来看
是比较快的,但是实际上这个执行
计划可能在实际执行中比较慢)。
我们现在碰到的就是这种情况,虽
然表的统计信息是准的,但恰恰优
化器在基于这个统计信息使用内部
算法得到的执行计划是不优化的一
这是优化器的固有限制。这时候就
需要DBA/Oracle Support介入,或
者使用hint,或者使用SQL Profile来
固定更好的执行计划。(这就是
Oracle数据库存在SQL Profile/hint
技术的原因,并且需要DBA操作人
员的原因)
内部的优化器是根据一系列的内部
算法基于表上的统计信息来产生执
行计划的。对于特别复杂的SQL语
句,Oracle的优化器有一定几率不
能得到最优的执行计划(因为机器
代码实际上是比较死板的,虽然得
到的执行计划按照内部的算法来看
是比较快的,但是实际上这个执行
计划可能在实际执行中比较慢)。
我们现在碰到的就是这种情况,虽
然表的统计信息是准的,但恰恰优
化器在基于这个统计信息使用内部
算法得到的执行计划是不优化的一
这是优化器的固有限制。这时候就
需要DBA/Oracle Support介入,或
者使用hint,或者使用SQL Profile来
固定更好的执行计划。(这就是
Oracle数据库存在SQL Profile/hint
技术的原因,并且需要DBA操作人
员的原因)
相关文章推荐
- 修改统计信息改变执行计划(ORACLE)
- 在Oracle的SQL*PLUS中启用AutoTrace查看SQL执行计划和统计信息
- oracle查看sql执行计划和统计信息
- oracle -执行计划的统计信息
- Oracle CBO 统计信息的收集与执行计划的选择
- ORACLE 执行计划 统计信息介绍
- Oracle CBO 统计信息的收集与执行计划的选择
- oracle执行计划与统计信息的一些总结
- 准确的统计信息是执行计划正确的基本前提,6.8小时-->9秒
- ORACLE统计信息与执行计划
- oracle查看sql执行计划和统计信息
- Oracle:执行计划:访问路径、表连接、提示、统计信息、绑定变量
- Oracle执行计划突变诊断之统计信息收集问题
- SQL Server 执行计划利用统计信息对数据行的预估原理以及SQL Server 2014中预估策略的改变
- 如何知道执行计划使用了那些统计信息
- Oracle 开发人员分析SQL 执行计划的关注点
- sqlplus中显示sql执行计划和统计信息
- 从一个SQL使用了不理想的执行计划说开,浅谈执行计划如何估算cache信息的影响及系统统计信息的收集等(2010-10-15)