COMPILATION_ENV 表関数 - コンパイル環境のエレメントの検索
COMPILATION_ENV 表関数は、コンパイル環境のエレメントを戻します。
構文
スキーマは SYSPROC です。
表関数パラメーター
- compilation-env
- comp_env_desc (コンパイル環境) モニター・エレメントから得られる、コンパイル環境が入った、タイプ BLOB(2M) の入力引数。
許可
この関数を実行するには、以下のいずれかの権限が必要です。
- 関数に対する EXECUTE 特権
- DATAACCESS 権限
- DBADM 権限
- SQLADM 権限
デフォルトの PUBLIC 特権
制限のないデータベースでは、この関数が自動的に作成されると、EXECUTE 特権が PUBLIC に付与されます。
関数は、NAME VARCHAR(256) および VALUE VARCHAR(1024) という 2 つの列 (表 1を参照) がある表を戻します。 コンパイル環境のエレメント名として可能な値を、表 2で説明します。
エレメント値の提供元は主に、SQL ステートメントが動的に発行されるか、またはパッケージの一部としてバインドされるかに応じて異なります。
コンパイル環境の項目の数とタイプは、データベース・マネージャーの機能の追加に応じ、時の経過と共に変わる可能性があります。コンパイル環境が、この関数が実行されているのとは異なるデータベース・マネージャー・レベルのものである場合、そのレベルの関数によって認識されるエレメントだけが戻されます。エレメントの記述は、リリースごとに異なる場合もあります。
例
例 1: デッドロック・イベント・モニターによって以前にキャプチャーされた特定のコンパイル環境のすべてのエレメントを要求します。
WITH DETAILS HISTORY オプションを指定して作成されたデッドロック・イベント・モニターは、動的 SQL ステートメントのコンパイル環境をキャプチャーします。
このキャプチャー環境は、表関数への入力として受け入れられるものです。
SELECT NAME, VALUE
FROM TABLE(SYSPROC.COMPILATION_ENV(:hv1)) AS t例 2: コンパイル環境の特定のエレメント (デフォルトのスキーマ) を要求します。
SELECT NAME, VALUE
FROM TABLE(SYSPROC.COMPILATION_ENV(:hv1)) AS t
WHERE NAME = 'SCHEMA'例 3: パッケージ・キャッシュ内の特定のステートメントのコンパイル環境を表示します。
- 実行可能 ID を取得します。これは、以下のステートメントを使って、対象のステートメントを識別するために使用されます。
SELECT EXECUTABLE_ID, VARCHAR(STMT_TEXT, 100) FROM TABLE(MON_GET_PKG_CACHE_STMT(NULL,NULL,NULL,-1)) AS t以下は、上記ステートメントを実行した後の出力例です。EXECUTABLE_ID 2 ------------------------------------------------------------------- -------------------------------------------------- x'0100000000000000010000000000000000000000020020090914151405241700' select count(*) from syscat.tables ... - ステートメント (実行可能 ID を使って識別される) のコンパイル環境を調べ、COMPILATION_ENV 表関数を使ってコンパイル環境をフォーマットします。以下のステートメントは、これを行う方法を示す例です。
SELECT VARCHAR(NAME, 30), VARCHAR(VALUE, 50) FROM TABLE(COMPILATION_ENV((SELECT COMP_ENV_DESC FROM TABLE (MON_GET_PKG_CACHE_STMT(NULL, x'0100000000000000010000000000000000000000020020090914151405241700', NULL, -1)) AS t))) AS s以下は、上記ステートメントを実行した後の出力例です。1 2 ------------------------------ -------------------------------------------------- ISOLATION CS QUERY_OPTIMIZATION 5 DEGREE 1 SQLRULES Db2 REFRESH_AGE +00000000000000.000000 RESOLUTION_TIMESTAMP 2009-09-14-15.14.05.000000 FEDERATED_ASYNCHRONY 0 PATH "SYSIBM","SYSFUN","SYSPROC","SYSIBMADM","SWALKTY" MAINTAINED_TABLE_TYPE SYSTEM 9 record(s) selected.
戻される情報
| 列名 | データ・タイプ | 説明 |
|---|---|---|
| NAME | VARCHAR(256) | コンパイル環境のエレメント。詳しくは、表 2を参照してください。 |
| VALUE | VARCHAR(1024) | エレメントの値。 |
| エレメント名 | 説明 |
|---|---|
| ISOLATION | SQL コンパイラーに渡される分離レベル。この値は、現行のパッケージの CURRENT ISOLATION 特殊レジスターまたは ISOLATION BIND オプションから取得されます。 |
| QUERY_OPTIMIZATION | SQL コンパイラーに渡される照会最適化レベル。この値は、現行のパッケージの CURRENT QUERY OPTIMIZATION 特殊レジスターまたは QUERYOPT BIND オプションから取得されます。 |
| DEGREE | SQL コンパイラーに渡される、要求された内部並列処理の度合い。この値は、現行のパッケージの CURRENT DEGREE 特殊レジスターまたは DEGREE BIND オプションから取得されます。 |
| SQLRULES | SQL コンパイラーに渡される、要求された SQL ステートメントの動作。この値は、現行のパッケージの LANGLVL BIND オプションの設定から導出されます。可能な値は、'Db2' または 'SQL92' です。 |
| REFRESH_AGE | SQL コンパイラーに渡される、許容データ待ち時間。この値は、現行のパッケージの CURRENT REFRESH AGE 特殊レジスターまたは REFRESHAGE BIND オプションから取得されます。 |
| SCHEMA | SQL コンパイラーに渡されるデフォルトのスキーマ。この値は、現行のパッケージの CURRENT SCHEMA 特殊レジスターまたは QUALIFIER BIND オプションから取得されます。 |
| PATH | SQL コンパイラーに渡される関数パス。この値は、現行のパッケージの CURRENT PATH 特殊レジスターまたは FUNC_PATH BIND オプションから取得されます。 |
| TRANSFORM_GROUP | SQL コンパイラーに渡されるトランスフォーム・グループ情報。この値は、CURRENT DEFAULT TRANSFORM GROUP 特殊レジスターまたは TRANSFORMGROUP パッケージ BIND オプションから取得されます。 |
| MAINTAINED_TABLE_TYPE | SQL コンパイラーに渡される、どの表タイプを最適化の検討対象にできるかを示すインディケーター。この値は、CURRENT MAINTAINED TABLE TYPES FOR OPTIMIZATION 特殊レジスターから取得されます。 |
| RESOLUTION_TIMESTAMP | SQL ステートメント内の関数やデータ・タイプ参照などの項目の解決のために、SQL コンパイラーによって使用されるタイム・スタンプ。このタイム・スタンプは、現行のタイム・スタンプか、または現行のパッケージの最新の明示的なバインド操作のタイム・スタンプです。 |
| FEDERATED_ASYNCHRONY | SQL コンパイラーに渡される、要求されたフェデレーテッド非同期並列処理の度合い。この値は、現行のパッケージの CURRENT FEDERATED ASYNCHRONY 特殊レジスターまたは FEDERATED_ASYNCHRONY BIND オプションから取得されます。 |
