基数反馈(Cardinality Feedback)

简介: 基数反馈(Cardinality Feedback) Cardinality Feedback Cardinality Feedback基数反馈是版本11.2(11.2.0.1及以后)中引入的关于SQL 性能优化的新特性,该特性主要针对 统计信息陈旧、无直方图或虽然有直方图但仍基数计算不准确的情况,Cardinality基数的计算直接影响到后续的JOIN COST等重要的成本计算评估,造成CBO选择不当的执行计划。

基数反馈(Cardinality Feedback)



Cardinality Feedback

Cardinality Feedback基数反馈是版本11.2(11.2.0.1及以后)中引入的关于SQL 性能优化的新特性,该特性主要针对 统计信息陈旧、无直方图或虽然有直方图但仍基数计算不准确的情况,Cardinality基数的计算直接影响到后续的JOIN COST等重要的成本计算评估,造成CBO选择不当的执行计划。以上是Cardinality Feedback特性引入的初衷。

发生情景:

在普通用户下,在sys用户下是会发生feedback特性 
1,没有收集表的统计信息,并且dynamic samping也没有开启 
2,查询条件复杂(比如条件有函数)或者涉及多列,但是没有收集扩展统计信息(extend statics)

运行方式:

  1. 针对上述情况,Oracle会监控操作的实际行数(A-Row),然后对比CBO估算的行数(E-Row)。
  2. 如果两个值相差很大,就记录实际行数(A-Row),做上标记。下次执行时再次进行硬解析,根据实际行数来重新生成执行计划。
  3. 如果两个值相差不大,CBO就不再监控这条SQL语句。

使用的标志;

统计信息中有:

Note

  • cardinality feedback used for this statement

禁用feedback的方式:

hint : opt_param(‘_optimizer_use_feedback’ ‘false’) 
修改参数: alter system set “_optimizer_use_feedback”=false scope=both;

hint:cardinality(test, 1)强制使用

查看share pool中还有那些sql用到了feedback

select sql_ID,USE_FEEDBACK_STATS FROM V$SQL_SHARED_CURSOR where USE_FEEDBACK_STATS =’Y’;


CF特性的功能是非常不错的,oracle在使用了cf反馈评估后更准确的统计数据后会根据此数据生成对于的plan,在再次的执行中还会持续评估统计信息是否准确,以此重复解析,参考如下:

When a cursor is found to be a candidate for Statistics Feedback it will be hard parsed again using the new estimates. The child cursor will be marked as not being shareable and USE_FEEDBACK_STATS set to ‘Y’ in V$SQL_SHARED_CURSOR.
Note: As the need for Statistics Feedback was only detected while execution of this cursor, Statistics Feedback will not actually be used for this child. However it will be used for all further child cursors created.

At the next execution, as a result of the cursor being marked as not shareable, a hard parse will again be performed and a new child created with the optimizer having used the new estimates for creating an optimizer plan.

但是由于cf的评估结果数据只存在内存中(重启之后就需要重新来过),在session之间是不可共用的,并且由于在11g中存在了过多的bug,常见的问题就是在第二次执行sql时候性能下降较多.因此我在11g的数据库中往往会对11.2.0.4以下的数据库会将该特性关闭.

部分bug list

feedback bug








 

 

 

 

 

  

  

 

 

 

 

 

 

 

 

 

>

          

 

>

 

>

 

>

 

>

 

 

 

 

>

     

     

     

     

     

     

     

     

    

    

    

    

        

    

    

 

                                       

                           

 

 

 

 

 

>

 

 

>

 

 

                                    

                                           

                               

                                   

   

   

 

 

>

 

            

 

 

 

 

 

 

 

>

 

>

 

 

>>>

 

 

 

 

>

 

 

 

 

>

 

                               

      

                                          

 

                              

 

                                 

 

   

 

 

>

 

                               

      

                                          

 

                              

 

                                 

 

   

 

 

 

 

>

        

             

 

 

 

>>>>

 

  

                               

                                                

                               

                                  

 

  

      

      

      

      

      

      

      

      

      

  

   

 

 

>>>>

 

  

                               

                                                

                               

                                   

 

  

      

      

      

      

      

      

      

      

      

  

   

 

   

 

 

 

 

 

 

 

 

>

 

>

 

 

>

 

 

 

 

>

 

 

 

 

>

 

        

             

 

>>>>

 

  

                               

                                               

                              

                                 

  

      

      

      

      

      

      

      

      

      

      

  

   

 

 

 

 

 




 
 
 
 
 
 
 
 





 

&

 





 

 

 

 

   


 

>


 

 


 

 

 
 








    


DBA笔试面试讲解
欢迎与我联系

目录
相关文章
|
8月前
|
人工智能 弹性计算 监控
龙虾AI怎么养?OpenClaw一键部署,两步解锁专属龙虾AI助理!
2026年爆火的开源AI智能体OpenClaw(昵称“龙虾”),主打“能动手做事”,支持文件管理、浏览器自动化、代码编写、定时任务等本地化操作。本文详解阿里云一键部署攻略:两步完成安装配置,安全快捷接入主流IM,让每位用户轻松拥有专属AI助理!
1918 6
|
9月前
|
机器学习/深度学习 人工智能 自然语言处理
PPO 应用 —— 大模型偏好优化的核心场景与落地思路
本文详解PPO算法在大模型RLHF落地中的核心应用:聚焦对话风格、客服话术、内容生成、安全合规、垂直领域及多模态六大场景,强调“偏好定制化”价值。全程无代码,提供4步落地法与3大实操要点,助力企业高效实现大模型优化。(239字)
|
10月前
|
传感器 安全 机器人
2026年酒店场景智能化必备设备深度解析
当前酒店业面临人力失衡与服务升级双重挑战,智能化成为破局关键。通过部署智能机器人、无人配送、智能门锁、清洁设备及能耗管理系统,实现从客房到公区的全场景数字化闭环。2026年,AI与物联网深度融合,推动酒店向高效、安全、个性化与绿色运营转型,全面提升人效与住客体验。(239字)
|
存储 程序员 PHP
老程序员分享:Php中正则小结(一)
老程序员分享:Php中正则小结(一)
217 0
|
Oracle 关系型数据库 Linux
linux8安装oracle 11g遇到的问题记录
Oracle 11g在Linux 8上安装时会遇到link编译环节的问题。官方建议忽略安装中的链接错误,安装完成后应用DBPSU 11.2.0.4.240716补丁及一次性补丁33991024,再重新编译二进制文件,并配置监听器和数据库。但因11g已退出服务期,这些补丁需付费获取。网上信息显示22年1月的PSU补丁也可解决问题,找到该补丁后按常规方式打补丁即可。如有需求或疑问可咨询我。
1099 20
|
网络协议 Windows
【常用命令】netstat -ano命令图文详细说明
【常用命令】netstat -ano命令图文详细说明
2725 0
字符串逆序
字符串逆序
326 2
|
分布式计算 NoSQL Java
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
397 2
|
数据挖掘 数据处理 索引
一文秒懂Pandas中的crosstab与pivot
一文秒懂Pandas中的crosstab与pivot
841 0
|
存储 Kubernetes API
在K8S中,calico有哪些组件?都是做什么的?
在K8S中,calico有哪些组件?都是做什么的?