ドルヲタ系インフラエンジニア じーふーの備忘録

クラウドをメインに扱うインフラエンジニアが書くメモやら雑感、たまにドルヲタ的活動記録残します。最近の推しはAzureのData Factory(V2)です。

【Oracle】 カーディナリティ・フィードバック(Cardinality Feedback)

同じSQLを実行しても同じ実行計画が選択されない場合がある。 そのような状況が発生している場合、11gR2より実装されたカーディナリティ・フィードバック機能(Cardinality Feedback)が影響している可能性がある。

カーディナリティ・フィードバック(Cardinality Feedback)

  • 実行計画を生成するCBOのインプット情報に実データのカーディナリティを加えることによって、より最適な実行計画を生成する機能
  • ハードパース時、統計情報と実データのカーディナリティにかい離がある場合、そのカーディナリティを記録し、その後実行される同一SQLの実行計画は、実データを加味して最適になるように変更される可能性がある

引用: http://www.oracle.com/technetwork/jp/ondemand/db-new/b-14-consulsql-1448421-ja.pdf

設定方法

※ 隠しパラメータは通常、「サポートセンターの指示なしでは設定すべきでない」パラメータですのでご注意ください
隠しパラメータ _optimizer_use_feedback をTRUEに設定する(デフォルト値はTRUE)

参考

http://dioncho.blogspot.jp/2009/12/oracle-11gr2cardinaliy-feedback.html