最近在处理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;

若不生效可重启数据库;

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐