ORA-12872: First slave parse gave different plan
Cause: First hard parse on slave given QC-supplied environment and parameters gave different plan from QC. Try again with outline.
Action: No external action. Internally used for outline-based reparse.
。
ORA-12872 表示只要第一次分析(parsing)所得的执行计划和分析得到的执行计划存在偏差时之后若有更新,则不会更新第一次得到的执行计划。
1、确认ORACLE优化器正确访问到了最新的数据统计信息,比如检查分区表、全局索引、表和索引等;
2、在SQL语句中+CURSOR_SHARING_EXACT加以强制改变;
3、使用DBMS_STATS.GATHER_TABLE_STATS重新分析表;
4、将实用程序计划转换为本地大小写;
5、如果查询过慢,请重新设计查询SQL来减少执行计划变化;
6、使用事务进行提交或者回滚,以便避免部分表数据的更新操作可能影响执行计划的变化;
7、可以尝试替换hints、更改SQL语句上的有关表别名等,从而抑制ORACLE优化器的重新执行;
8、使用ALTER SESSION会话命令将OPTIMIZER_USE_SQL_PLAN_BASELINES参数改为FALSE;
9、不要在过时的RDBMS上使用Oracle工具。