那些語句使用cardinality feedback

lfree發表於2014-01-22

[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_xml like '%cardinality_feedback%' ;
或者
select * from DBA_HIST_SQL_PLAN where other_xml like '%cardinality_feedback%' ;


google一些文件,看了一些自己寫的一篇blog:
http://blog.itpub.net/267265/viewspace-753102/


很容易寫:
/* Formatted on 2014/1/22 15:02:15 (QP5 v5.252.13127.32867) */
SELECT p.sql_id,
       EXTRACTVALUE (h.COLUMN_VALUE, '/info') lvl,
       EXTRACTVALUE (h.COLUMN_VALUE, '/info/@type')
  FROM v$sql_plan p,
       TABLE (
          XMLSEQUENCE (EXTRACT (xmltype (p.other_xml), '/other_xml/info'))) h
WHERE     p.other_xml IS NOT NULL
       AND EXTRACTVALUE (h.COLUMN_VALUE, '/info/@type') LIKE
              'cardinality_feedback';

--實際上利用這個指令碼也可以查詢其他特性。比如dynamic_sampling,12c的this is an adaptive plan等等。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-1074098/,如需轉載,請註明出處,否則將追究法律責任。

相關文章