大多数情况下,用oracle, 第一次查询慢, 第二次查询肯定比第二次查询快对吧,
Cardinality Feedback基数反馈, 是版本11.2中引入的关于sql 性能优化的新特性,该特性主要针对 统计信息陈旧、无直方图或虽然有直方图但仍基数计算不准确的情况, Cardinality基数的计算直接影响到后续的JOIN COST等重要的成本计算评估,造成CBO选择不当的执行计划。以上是Cardinality Feedback特性引入的初衷。
基数反馈多少也造成了一些麻烦,典型的情况是测试语句性能时,第一次的性能最好,之后再运行其性能变差。
如何禁用Cardinality Feedback基数反馈
对于这些”惹火”特性,为了stable,往往考虑关闭该特性。
可以通过多种方法禁用该特性
1. 使用_optimizer_use_Feedback 隐藏参数
session 级别
sql> alter session set “_optimizer_use_Feedback”=false;
会话已更改。
system级别
sql> alter system set “_optimizer_use_Feedback”=false;
系统已更改。