Question & Answer
Question
SQL ストアード・プロシージャーのアクセス・プランを取得する方法を教えてください。
Answer
SQL ストアード・プロシージャーは、特に指定しない限り、作成時にアクセス・プランが選択されます。
CREATE PROCEDURE 実行時に、以下の要領で EXPLAIN 情報を取得できます。
CREATE PROCEDURE 実行時に、以下の要領で EXPLAIN 情報を取得できます。
- Explain を有効にして SQL プロシージャーを作成します。
db2 "call set_routine_opts(get_routine_opts() || ' EXPLAIN ALL')" db2 "CREATE PROCEDURE ...."
- Explain 表からプランをフォーマットします。
db2exfmt -d データベース名 -1 -o 出力ファイル名
なお、V9.7 FP1 以上のレベルでは、以下の FAQ に記載されているように、パッケージ・キャッシュからアクセス・プランを取得できます。
[Db2] パッケージ・キャッシュから Explain を採取する方法
運用上の考慮点
アクセス・プランを取得するためには、事前に Explain 表を作成しておく必要があります。関連情報を参照してください。
関連情報
[Db2] Explain 表の作成方法と削除方法
[Db2] SQL の実行計画 (Explain) を取得する方法
[Db2] パスポート・アドバンテージによく寄せられる質問
コンパイル済み SQL オブジェクトのプリコンパイル・オプションと BIND オプションのカスタマイズ
セクションから得られる Explain 情報を使った照会パフォーマンスの調査
[{"Type":"MASTER","Line of Business":{"code":"LOB10","label":"Data and AI"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"ARM Category":[{"code":"a8m500000008PkyAAE","label":"Compiler-\u003EOptimization db2explain db2advis"},{"code":"a8m500000008PmkAAE","label":"Routines - Stored Procedures and UDF-\u003ESQL Routines"}],"ARM Case Number":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Versions"}]
Was this topic helpful?
Document Information
Modified date:
24 August 2023
UID
swg21614846