MON_GET_SECTION 表関数 - パッケージ・キャッシュからのセクションのコピーの取得

MON_GET_SECTION 表関数は、パッケージ・キャッシュから動的または静的な SQL ステートメントのセクションのコピーを返します。 返されるセクションは、将来の分析のために保存しておくことができます。 例えば、ステートメントのプラン変更を調べる場合、保存されたセクションを EXPLAIN_FROM_DATA ストアード・プロシージャーの入力として渡して、以前のアクセス・プランを調べることができます。

許可

以下のいずれかの権限が必要です。
  • ルーチンに対する EXECUTE 特権
  • DATAACCESS 権限
  • SQLADM 権限
  • DBADM 権限

デフォルトの PUBLIC 特権

なし

構文

Read syntax diagramSkip visual syntax diagramMON_GET_SECTION(executable_id )

スキーマは SYSPROC です。

ルーチン・パラメーター

実行可能 ID
データベース・パッケージ・キャッシュの固有のセクションを指定する、タイプ VARCHAR (32) FOR BIT DATA の入力引数。

このルーチンは、このセクションのすべてのメンバーのパッケージ・キャッシュを検索します。 静的 SQL の場合、カタログは、パッケージ・キャッシュにもうセクションがない場合に検索されます。

NULL または無効な値が指定されると、SQL0171 が返されます。

戻される情報

表 1. MON_GET_SECTION によって戻される情報
列名 データ・タイプ 説明
SECTION_TYPE CHAR(1) section_type - セクション・タイプ標識 : モニター・エレメント
SECTION_ENV BLOB(134 MB) section_env セクション環境 : モニター・エレメント

以下の照会を使用して、ステートメント・テキスト、ステートメント ID、プラン ID、およびセクション情報をコンパイル環境から取得します。 現在パッケージ・キャッシュ内にあるすべてのステートメントに関する情報が返されます。 その情報は、REPOSITORY_SECTIONS と呼ばれる表に挿入されます。
INSERT INTO
      REPOSITORY_SECTIONS(STMT_TEXT, STMTID, PLANID,
                          SEMANTIC_ENV_ID, SECTION_DATA)
      SELECT STMT_TEXT, STMTID, PLANID, SEMANTIC_ENV_ID,
      ( SELECT B.SECTION_ENV
        FROM TABLE(MON_GET_SECTION(A.EXECUTABLE_ID)) AS B)
         SECTION_DATA
      FROM TABLE(MON_GET_PKG_CACHE_STMT(NULL,NULL,NULL,-2)) AS A
この情報を使用して、実行されたステートメントの履歴を作成できます。 EXPLAIN_FROM_DATA ストアード・プロシージャーを使用して、保存されたセクションをストアード・プロシージャーに渡すことによって、保存された各ステートメントのアクセス・プランを調べることができます。