oracle数据库偶然遇到同一个sql第一次查询快,后面查询效率变慢的情况
oracle数据库偶然遇到同一个sql第一次查询快,后面查询效率变慢的情况
·
最近在处理sql的时候突然遇到一种情况,对于同一个sql在第一次执行的时候是很快的,但是当再次查询的时候查询效率会直线下降,百度了一下,引入了一个oracle的Cardinality Feedback基数反馈的新概念:
Cardinality Feedback基数反馈是版本11.2中引入的关于SQL 性能优化的新特性,该特性主要针对 统计信息陈旧、无直方图或虽然有直方图但仍基数计算不准确的情况,Cardinality基数的计算直接影响到后续的JOIN COST等重要的成本计算评估,造成CBO选择不当的执行计划。以上是Cardinality Feedback特性引入的初衷。
我是用以下方法禁用这个特性:
使用 _optimizer_use_feedback 参数,执行两个语句
alter session set “_optimizer_use_feedback”=false;
alter system set “_optimizer_use_feedback”=false;
若不生效可重启数据库;
更多推荐
已为社区贡献1条内容
所有评论(0)