基数反馈(Cardinality Feedback)

基数反馈(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



 

 

 

 

 

  

  

 

 

 

 

 

 

 

 

 

>

          

 

>

 

>

 

>

 

>

 

 

 

 

>

     

     

     

     

     

     

     

     

    

    

    

    

        

    

    

 

                                       

                           

 

 

 

 

 

>

 

 

>

 

 

                                    

                                           

                               

                                   

   

   

 

 

>

 

            

 

 

 

 

 

 

 

>

 

>

 

 

>>>

 

 

 

 

>

 

 

 

 

>

 

                               

      

                                          

 

                              

 

                                 

 

   

 

 

>

 

                               

      

                                          

 

                              

 

                                 

 

   

 

 

 

 

>

        

             

 

 

 

>>>>

 

  

                               

                                                

                               

                                  

 

  

      

      

      

      

      

      

      

      

      

  

   

 

 

>>>>

 

  

                               

                                                

                               

                                   

 

  

      

      

      

      

      

      

      

      

      

  

   

 

   

 

 

 

 

 

 

 

 

>

 

>

 

 

>

 

 

 

 

>

 

 

 

 

>

 

        

             

 

>>>>

 

  

                               

                                               

                              

                                 

  

      

      

      

      

      

      

      

      

      

      

  

   

 

 

 

 

 



 
 
 
 
 
 
 
 

 

&

 

 

 

 

 

   

 

>

 

 

 

 




    

时间: 2024-07-30 10:49:39

基数反馈(Cardinality Feedback)的相关文章

oracle中Cardinality Feedback与_optimizer_use_feedback的使用建议

该参数与Cardinality Feedback特性有关,优化器可以估算基数不正确的原因有很多,如缺少的统计信息,不准确的统计数据,或复杂的谓词,基数统计反馈有助于优化器生成更合理的执行计划.对于此特性我不作科普了,比较详细的资料可以参考以下文档: 1.Tuning-by-Cardinality-Feedback.pdf 2.Statistics (Cardinality) Feedback – Frequently Asked Questions (文档 ID 1344937.1) 该特性其实

[20150428]11G SPM与cardinality feedback

[20150428]11G SPM与cardinality feedback问题.txt 1.问题说明: SCOTT@test> @ver1 PORT_STRING                    VERSION        BANNER ------------------------------ -------------- --------------------------------------------------------------------------------

[20150706]11G cardinality feedback问题

[20150706]11G cardinality feedback问题.txt --今天做一个测试例子,第1次遇到cardinality feedback的问题 1.建立测试环境: SCOTT@test> @ver1 PORT_STRING                    VERSION        BANNER ------------------------------ -------------- -----------------------------------------

[20130305]Cardinality Feedback on 11gR2.txt

[20130305]Cardinality Feedback on 11gR2.txt http://blogs.oracle.com/optimizer/entry/cardinality_feedback Cardinality Feedback是11G的新特性,它可以自动调整执行计划.但是具体如何实现的呢?按照上面的链接的例子做一些测试看看. 1.测试环境以及问题提出: SQL> select * from v$version where rownum BANNER -----------

那些语句使用cardinality feedback

[20140122]那些语句使用cardinality feedback.txt cardinality feedback是11G的新特性,昨天别人问一个问题,在11G下如何知道那些sql语句使用了cardinality feedback. 实际上这些信息保存在v$sql_plan或者DBA_HIST_SQL_PLAN的other_xml里面,里面的信息是XML格式的,对这些语句如何写我自. 己从来记不住. 简单一点: select * from v$sql_plan where other_x

CBO中基数(cardinality)、可选择率(selectivity)的计算公式

CBO中基数(cardinality).可选择率(selectivity)的计算公式 Cardinality(基数)是Oracle预估的返回行数,即对目标SQL的某个具体执行步骤的执行结果所包含记录数的估算值.如果是针对整个目标SQL,那么此时的Cardinality就表示该SQL最终执行结果所包含记录数的估算值.例如,一张表T有1000行数据,列COL1上没有直方图,没有空值,并且不重复的值(Distinct Value)有500个.那么,在使用条件"WHERE COL1="去访问表

盘点 Oracle 11g 中新特性带来的10大性能影响

盘点 Oracle 11g 中新特性带来的10大性能影响 原创 2017-08-02 盖国强 数据和云 Oracle的任何一个新版本,总是会带来大量引人瞩目的新特性,但是往往在这些新特性引入之初,首先引起的是一些麻烦,因为对于新技术的不了解.因为对于旧环境的不适应,从Oracle产品到技术服务运维,总是要走过一个磨合的长期过程. 请注意:我们并不推荐大家盲目的关闭和摒弃Oracle的新特性,我们建议大家在遇到问题时,做出适合自己的调整. 就此盘点一下 Oracle 11g 中,那些新特性带来的新

设计有效的“用户行为与反馈效应”循环

本文作者Loren Baxter,一名交互设计师,译者@C7210 .无论你在设计怎样的产品,总会涉及到"用户行为与反馈效应"这样的循环. 很多时候,良好而有效的"反馈循环(feedback loop)"是决定一款产品能否取得成功的重要因素.本文中,我们来一起看一看,怎样通过精心打造的反馈循环对用户行为产生影响. 什么是反馈循环 "反馈循环"在我们的现实生活中是无处不在的,它可以揭示出人们是否做了正确的选择.一个人吃了不好的东西会觉得恶心难受,并

[20150430]11G SPM与cardinality feedback2

[20150430]11G SPM与cardinality feedback问题2.txt 1.问题说明: SCOTT@test> @ver1 PORT_STRING                    VERSION        BANNER ------------------------------ -------------- -------------------------------------------------------------------------------