My Oracle Support Banner

SQL 計画管理 (SPM) の使用方法 - プラン・スタビリティ動作例 (Doc ID 2650514.1)

Last updated on MARCH 19, 2020

適用範囲:

Oracle Database - Enterprise Edition - バージョン 11.1.0.6 以降
Oracle Database Cloud Schema Service - バージョン N/A 以降
Oracle Database Exadata Express Cloud Service - バージョン N/A 以降
Oracle Database Cloud Exadata Service - バージョン N/A 以降
Gen 1 Exadata Cloud at Customer (Oracle Exadata Database Cloud Machine) - バージョン N/A 以降
この文書の内容はすべてのプラットフォームに適用されます。

目的

注意:以下の画像および/またはドキュメントの内で使用されるユーザー情報とデータは、OracleサンプルスキーマまたはOracleデータベース製品とともに提供される公開ドキュメントからの架空のデータを表しています。実際の人物との類似性はその生死に関わらず、純粋に偶然であり、いかなる意味でも意図されたものではありません。

SQL計画管理(SPM)は、SQL文の実行計画を長期にわたって記録および評価する予防メカニズムです。SPMは、効率的であることがわかっている既存の計画のセットで構成されるSQL計画ベースラインを構築します。次に、SQL計画ベースラインを使用して、システムで発生する変更に関係なく、対応するSQL文のパフォーマンスを維持し、プラン・スタビリティ「実行計画の安定」を提供します。

SQL計画管理がSQLパフォーマンスを改善または維持できる一般的な使用シナリオには、次のものがあります。:

カーソル・キャッシュに適切な計画がある場合、これらをSPMにロードして、このベースラインを使用してパフォーマンスを維持できます。 次のコマンド例はこれを示しています。:

set serveroutput on

var n number
begin
:n:=dbms_spm.load_plans_from_cursor_cache(sql_id=>'&sql_id', plan_hash_value=>&plan_hash_value, fixed =>'NO', enabled=>'YES');
end;
/

EXEC dbms_output.put_line('Number of plans loaded: ' || :n);

SPMを有効にした後、SQL計画管理ベースラインを持つSQL IDの場合、データベースは新しいアクセス・プランを収集しません(SPMが無効になった後でも、ベースラインがアクティブであると想定)

このドキュメントの目的は、SQL計画管理の例を示すことです。

注意: 11gR2では、ベースラインを承認および承認解除する手順が変更されました。11gR2でこれらの手順を実行する方法については、次を参照してください。:

<Document 1309799.1> How to Accept & Unaccept the plans in sql baselines in 11.2.0.1

 

解決策

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.