この記事はNigel BaylissによるWhat is DBMS_SPM.ADD_VERIFIED_SQL_PLAN_BASELINE?を日本語に翻訳したものです。
2024年3月18日
DBMS_SPMパッケージの新しいファンクションがOracle Database 23cからOracle Database 19cにバックポートされました。 このファンクションは、ADD_VERIFIED_SQL_PLAN_BASELINEと言います。
これにより、SQL文の過去の実行計画を見つけて最適なものを確立し、それを適用するSQL計画ベースラインを作成するタスクを自動化できます。 自動SQLチューニング・セットを使用している場合に最も効果的ですが、AWRおよびカーソル・キャッシュも検索されます。 このアイディアは、SQLパフォーマンスが低下した場合、新しいファンクションを実行することでSPM Evolve(改良)のテスト実行をして、代替実行計画を検証するというものです。 より良い実行計画が見つかれば、SQL計画ベースラインを使用します。すべてが1ステップです。
Oracle Database 19cの場合、Oracle Database 19c RU19.22およびOracle Autonomous Database 19cには含まれており、パッチ番号34534504から多くのRU向けの個別パッチがで入手できます(注意:My Oracle Supportへのパッチ番号をクリックするとFirefoxのバージョンによっては動作が不安定になります)。
このファンクションは、PL/SQLパッケージおよびタイプ・リファレンス 23cのドキュメントに記載されていますが、近々、19cのドキュメントにも記載予定です。
SQL*Plusでは、次のように使用できます
set long 100000
set tab off
set linesize 200
column report format a150
var report clob
exec :report := dbms_spm.add_verified_sql_plan_baseline('
');
select :report report from dual;
これは”1回ですべてを実施する”方法ですが、細かく調整したい場合(または、推奨されるSQL計画ベースラインを実装せずにレポートを生成したい場合)、こちらのブログをご覧ください。