DSN_STATEMENT_CACHE_TABLE
ステートメント・キャッシュ表 DSN_STATEMENT_CACHE_TABLE には、ステートメント・キャッシュ内の SQL ステートメントに関する情報、EXPLAIN STATEMENT CACHE ALL ステートメントの結果としてキャプチャーされる情報が入っています。
修飾子
サブシステムまたはデータ共用グループには、ユーザー ID によって修飾されるこれらの表の複数インスタンスを含めることができます。 これらの表には、EXPLAIN ステートメントまたはバインドを発行する場合に、ステートメントのコスト情報が追加されます。 これらの表には、BIND コマンドまたは REBIND コマンドで EXPLAIN(YES) か EXPLAIN(ONLY) を指定した場合にも情報が追加されます。 SQL 最適化ツールも、ユーザー ID で修飾された EXPLAIN 表を作成する場合があります。 この表のインスタンスを作成するための SQL ステートメントは、SDSNSAMP ライブラリーのメンバー DSNTESC にあります。
サンプルの CREATE TABLE ステートメント
各 EXPLAIN テーブルのサンプル CREATE TABLE ステートメントは、 プレフィックス. SDSNSAMP ライブラリのメンバー DSNTESC にあります。 EXPLAINテーブルを現在の Db2 の形式にアップグレードするには、ADMIN_EXPLAIN_MAINTストアド・プロシージャを呼び出します。 ADMIN_EXPLAIN_MAINTは、EXPLAINテーブルを作成したり、現在の Db2 リリース用のフォーマットにアップグレードしたり、その他の保守作業を行うこともできます。 アクション入力パラメータを使用してこれらの各タスクを要求する方法については、 ADMIN_EXPLAIN_MAINTストアド・プロシージャを参照してください。 また、EXPLAINテーブルを現在の Db2 の形式にアップグレードするタスクのみを実行する場合は、ジョブDSNTIJXAを実行することもできます。 DSNTIJXA は REXX exec DSNTXTA を呼び出してアップグレードを実行する。 DSNTIJXA の実行の詳細については、 移行ステップ 21: EXPLAIN テーブルを現在のフォーマットに変換するを参照してください。
列の説明
次の表は、DSN_STATEMENT_CACHE_TABLE 内の列の説明を示しています。
| 列名 | データ型 | 説明 |
|---|---|---|
| STMT_ID | INTEGER NOT NULL | ステートメント ID。この値はそのステートメント 用の EDM 固有トークンです。 |
| STMT_TOKEN | VARCHAR(240) | ステートメント・トークン。この値を識別ストリン グとして指定します。 |
| COLLID | VARCHAR(128) NOT NULL | コレクションID:
|
| PROGRAM_NAME | VARCHAR(128) NOT NULL | このステートメントに対する初期 PREPARE を実行したパッケージの名前。 |
| INV_DROPALT | CHAR(1) NOT NULL | この列は使用されません。 |
| INV_REVOKE | CHAR(1) NOT NULL | この列は使用されません。 |
| INV_LRU | CHAR(1) NOT NULL | この列は使用されません。 |
| INV_RUNSTATS | CHAR(1) NOT NULL | この列は使用されません。 |
| CACHED_TS | TIMESTAMP NOT NULL | 動的ステートメントキャッシュにステートメントが保存された際のタイムスタンプ。 3 |
| USERS | INTEGER NOT NULL | このステートメントの現行ユーザー数。 この数値は、現行作業単位時にステートメントを準備または実行したユーザーを示します。 1, 3 |
| COPIES | INTEGER NOT NULL | システム内のすべてのスレッドによって所有される、ステートメントのコピーの数 1, 3 |
| LINES | INTEGER NOT NULL | ステートメントの初期 PREPARE からのプリコンパイラー行番号 1 |
| PRIMAUTH | VARCHAR(128) NOT NULL | このステートメントの初期 PREPARE を行った 1 次許可 ID。 |
| CURSQLID | VARCHAR(128) NOT NULL | このステートメントの初期 PREPARE を行った CURRENT SQLID。 |
| BIND_QUALIFIER | VARCHAR(128) NOT NULL | BIND 修飾子。 非修飾表名の場合、これが対象の修 飾子となります。 |
| BIND_ISO | CHAR(2) NOT NULL | このステートメントに対して有効な ISOLATION BIND オプション値。 この値は、次のいずれかの値です。
|
| BIND_CDATA | CHAR(1) NOT NULL | このステートメントに対して有効な状態にある CURRENTDATA
BIND オプション値。 この値は、次のいずれかの値です。
|
| BIND_DYNRL | CHAR(1) NOT NULL | このステートメントに対して有効な DYNAMICRULES BIND
オプション値。 この値は、次のいずれかの値です。
|
| BIND_DEGRE | CHAR(1) NOT NULL | このステートメントに対して有効な状態にある CURRENT
DEGREE 特殊レジスター値。 この値は、次のいずれかの値です。
|
| BIND_SQLRL | CHAR(1) NOT NULL | このステートメントに対して有効な CURRENT RULES 特殊
レジスター値。 この値は、次のいずれかの値です。
|
| BIND_CHOLD | CHAR(1) NOT NULL | このステートメントに対する PREPARE の WITH HOLD 属性
値。 この値は、次のいずれかの値です。
|
| STAT_TS | TIMESTAMP NOT NULL | 統計のタイム・スタンプ。 これは、IFCID 318 が開始したときのタイム・スタンプです。 ※2 |
| STAT_EXEC | INTEGER NOT NULL | この列は推奨されません。 代わりに STAT_EXECB を使用してください。 |
| STAT_GPAG | INTEGER NOT NULL | この列は推奨されません。 代わりに STAT_GPAGB を使用してください。 ※1 |
| STAT_SYNR | INTEGER NOT NULL | この列は推奨されません。 代わりに STAT_SYNRB を使用してください。 ※1 |
| STAT_WRIT | INTEGER NOT NULL | この列は推奨されません。 代わりに STAT_WRITB を使用してください。 ※1 |
| STAT_EROW | INTEGER NOT NULL | この列は推奨されません。 代わりに STAT_EROWB を使用してください。 ※1 |
| STAT_PROW | INTEGER NOT NULL | この列は推奨されません。 代わりに STAT_PROWB を使用してください。 ※1 |
| STAT_SORT | INTEGER NOT NULL | この列は推奨されません。 代わりに STAT_SORTB を使用してください。 ※1 |
| STAT_INDX | INTEGER NOT NULL | この列は推奨されません。 代わりに STAT_INDXB を使用してください。 |
| STAT_RSCN | INTEGER NOT NULL | この列は推奨されません。 代わりに STAT_RSCNB を使用してください。 |
| STAT_PGRP | INTEGER NOT NULL | この列は推奨されません。 代わりに STAT_PGRPB を使用してください。 |
| STAT_ELAP | FLOAT NOT NULL | このステートメントに対して使用された累算経過時間。 ※2 |
| STAT_CPU | FLOAT NOT NULL | このステートメントに対して使用された累算 CPU 時間。 ※2 |
| STAT_SUS_SYNIO | FLOAT NOT NULL | このステートメントに対して行われた同期入出力操作の累 算待ち時間。 ※2 |
| STAT_SUS_LOCK | FLOAT NOT NULL | ステートメントに対するロック要求のための累算待機時間。 ※2 |
| STAT_SUS_SWIT | FLOAT NOT NULL | ステートメントに対する同期実行単位切り替えのための累算待ち時間 ※2 |
| STAT_SUS_GLCK | FLOAT NOT NULL | この文に対するグローバル・ペアレントLロックの累積待ち時間。 ※2 |
| STAT_SUS_OTHR | FLOAT NOT NULL | 別スレッドが行った読み取りアクティビティーの累算待ち 時間。 ※2 |
| STAT_SUS_OTHW | FLOAT NOT NULL | 別スレッドが行った書き込みアクティビティーの累算待ち 時間。 ※2 |
| STAT_RIDLIMT | INTEGER NOT NULL | この列は推奨されません。 代わりに STAT_SORTB を使用してください。 |
| STAT_RIDSTOR | INTEGER NOT NULL | この列は推奨されません。 代わりに STAT_SORTB を使用してください。 |
| EXPLAIN_TS | TIMESTAMP NOT NULL | ステートメント・キャッシュ表にデータが設定された 時点のタイム・スタンプ。 |
| SCHEMA | VARCHAR(128) NOT NULL | CURRENT SCHEMA 特殊レジスター値。 |
| STMT_TEXT | CLOB(2M) NOT NULL | Explain しようとするステートメント。 |
| STMT_ROWID | ROWID NOT NULL GENERATED ALWAYS | ステートメントの ROWID。 |
| BIND_RO_TYPE | CHAR(1) NOT NULL WITH DEFAULT | 文3の REOPTオプションの現在の仕様:
|
| BIND_RA_TOT | INTEGER NOT NULL WITH DEFAULT | REOPT ( AUTO) オプションにより動的ステートメントに対して発行された REBIND コマンドの合計数。1、3 |
| GROUP_MEMBER | varchar(24) not null with default | EXPLAINを実行した Db2 のメンバー名。 EXPLAINが実行された際に、 Db2 サブシステムがデータ共有環境になかった場合、この列は空白になります。 |
| STAT_EXECB | BIGINT NOT NULL WITH DEFAULT | このステートメントが実行された回数。 カーソル付きステートメントの場合、これはOPENの数です。 2 |
| STAT_GPAGB | BIGINT NOT NULL WITH DEFAULT | ステートメントに対して実行されるページ取得操作の回数 ※2 |
| STAT_SYNRB | BIGINT NOT NULL WITH DEFAULT | ステートメントに対して実行される同期バッファー読み取りの回数 ※2 |
| STAT_WRITB | BIGINT NOT NULL WITH DEFAULT | ステートメントに対して実行されるバッファー書き込み操作の回数 ※2 |
| STAT_EROWB | BIGINT NOT NULL WITH DEFAULT | ステートメントについて調査される行の数 ※2 |
| STAT_PROWB | BIGINT NOT NULL WITH DEFAULT | ステートメントについて処理される行の数 ※2 |
| STAT_SORTB | BIGINT NOT NULL WITH DEFAULT | ステートメントに対して実行されるソートの数。 2 |
| STAT_INDXB | BIGINT NOT NULL WITH DEFAULT | ステートメントに対して実行されるインデックススキャンの数。 2 |
| STAT_RSCNB | BIGINT NOT NULL WITH DEFAULT | ステートメントに対して実行されるテーブルスペースのスキャン数。 2 |
| STAT_PGRPB | BIGINT NOT NULL WITH DEFAULT | 文.2のために作成される並列グループの数 |
| STAT_RIDLIMTB | BIGINT NOT NULL WITH DEFAULT | RIDの数が Db2 の制限を超えてしまうため、RIDリストが使用されなかった回数。 2 |
| STAT_RIDSTORB | BIGINT NOT NULL WITH DEFAULT | RIDリストを格納するのに十分なストレージ容量がないため、RIDリストが使用されなかった回数。 2 |
| LITERAL_REPL | CHAR(1) NOT NULL WITH DEFAULT | リテラル値が「&」記号に置き換えられているキャッシュされたステートメントを特定します。 3
|
| STAT_SUS_LATCH | FLOAT NOT NULL WITH DEFAULT | ステートメントのラッチ要求のための累積待ち時間。 |
| STAT_SUS_PLATCH | FLOAT NOT NULL WITH DEFAULT | ステートメントのページ・ラッチ要求のための累積待ち時間。 |
| STAT_SUS_DRAIN | FLOAT NOT NULL WITH DEFAULT | ステートメントのドレーン・ロック要求のための累積待ち時間。 |
| STAT_SUS_CLAIM | FLOAT NOT NULL WITH DEFAULT | ステートメントのクレーム・カウント要求のための累積待ち時間。 |
| STAT_SUS_LOG | FLOAT NOT NULL WITH DEFAULT | ステートメントのログ書き込みプロセス要求のための累積待ち時間。 |
| EXPANSION_REASON | CHAR(2) NOT NULL WITH DEFAULT | この列は、アーカイブ表またはテンポラル表を参照するステートメントのみに適用されます。 他のステートメントについては、この列はブランクです。
CURRENT TEMPORAL BUSINESS_TIME 特殊レジスター、CURRENT TEMPORAL SYSTEM_TIME 特殊レジスター、および SYSIBMADM.GET_ARCHIVE 組み込みのグローバル変数の効果を示します。 これらの項目は、BUSTIMESENSITIVE、SYSTIMESENSITIVE、および ARCHIVESENSITIVE バインド・オプションによって制御されます。 以下の条件のいずれかに該当する場合、Db2 は特定の構文を暗黙的に照会に追加します。
この列は、次のいずれかの値を取ります。
|
| ACCELERATED | CHAR(10) | キャッシュされた動的ステートメントが、アクセラレーター・サーバーへのアクセラレーション用に準備されたかどうかを示します。 可能な値は以下のとおりです。
|
| ACCELERATED (継続) | (前の行からの続き。 )
照会のアクセラレーション動作が、QUERY_ACCELERATION サブシステム・パラメーター、QUERYACCELERATION バインド・オプション、または CURRENT QUERY ACCELERATION 特殊レジスターのいずれかで指定され、優先順位に応じて決まります。 優先順位 (低から高) は以下のとおりです。
|
|
| STAT_ACC_ELAP | BIGINT | アクセラレーターの累算経過時間。 |
| STAT_ACC_CPU | BIGINT | アクセラレーターの累算 CPU 時間。 |
| STAT_ACC_ROW | BIGINT | アクセラレーターから返された行の累算数。 |
| STAT_ACC_BYTE | BIGINT | アクセラレーターから返されたバイトの累算数。 |
| STAT_ACC_1ROW | BIGINT | 照会結果の先頭行がアクセラレーターから使用可能になるまでの待ち時間。 |
| STAT_ACC_DB2 | BIGINT | Db2 が照会結果を要求するまでアクセラレーターが待機した合計時間。 |
| STAT_ACC_EXEC | BIGINT | アクセラレーターの累算実行時間。 |
| STAT_ACC_WAIT | BIGINT | アクセラレーターの累算キュー待ち時間。 |
| ACCEL_OFFLOAD_ELIGIBLE | CHAR(1) |
|
| ACCELERATOR_NAME | VARCHAR(128) | 照会を処理したアクセラレーター・サーバーの連結名。 |
| PER_STMT_ID | BIGINT NOT NULL | 固定化された動的 SQL ステートメントのステートメント ID。 この項目が SYSIBM.SYSDNQRY カタログ表に安定化された場合またはそのカタログ表からロードされた場合は、この値が設定されます。 |
| STBLGRP | VARCHAR(128) NOT NULL | START DYNQRY コマンドで指定された安定化グループ名。 この項目が SYSIBM.SYSDNQRY カタログ表に安定化された場合またはそのカタログ表からロードされた場合は、この値が設定されます。 |
| QUERY_HASH | CHAR(16) NOT NULL FOR BIT DATA | ステートメント・テキストにより生成されたハッシュ・キー。 |
| QUERY_HASH_VERSION | INTEGER NOT NULL | QUERY_HASH のバージョン。 |
| STABILIZED | CHAR(1) NOT NULL | ステートメントが安定化されたかどうかを示します。 |
APPLCOMPAT![]() |
VARCHAR(10) NOT NULL![]() |
動的 SQL ステートメントのアプリケーション互換性レベル。![]() |
| CNO | BIGINT NOT NULL | 動的照会収集モニターのコマンド番号 (該当する場合)。 それ以外の場合は 0 です。 |
| STAT_SUS_CHILDLLOCK | FLOAT NOT NULL WITH DEFAULT | ステートメントの子 L ロックの累算待ち時間。 |
| STAT_SUS_OTHERLLOCK | FLOAT NOT NULL WITH DEFAULT | ステートメントの他の L ロックの累算待ち時間。 |
| STAT_SUS_PAGESETPLOCK | FLOAT NOT NULL WITH DEFAULT | ステートメントのグローバル・ページ・セットまたはパーティション L ロックの累算待機時間。 |
| STAT_SUS_PAGEPLOCK | FLOAT NOT NULL WITH DEFAULT | ステートメントのページ P ロックの累算待ち時間。 |
| STAT_SUS_OTHERPLOCK | FLOAT NOT NULL WITH DEFAULT | ステートメントの他の P ロックの累算待ち時間。 |
| STAT_SUS_PIPE | FLOAT NOT NULL WITH DEFAULT | ステートメントのパイプ要求の累算待ち時間。 |
| STAT_SUS_PQSYNC | FLOAT NOT NULL WITH DEFAULT | ステートメントの並列照会待機の累積待機時間。 |
| STAT_ACC_TWDP | BIGINT | アクセラレーター遅延プロトコルの累積待機時間。 |
| STAT_ACC_NWDP | BIGINT | アクセラレーター遅延プロトコルの待機時間が期限切れになったステートメントの累積数。 |
| STMT_HASHID2 | CHAR(8) FOR BIT DATA | SQL文を識別するために使用します。 正規化されたSQLステートメントのテキストに基づく。
|
| STMT_HASH2VER | INTEGER | STMT_HASHID2 値を計算する際に使用されるハッシュアルゴリズムのバージョンを識別するために使用されます。 |
AP_PLANID![]() |
CHAR(16) FOR BIT DATA![]() |
拡張タイムスタンプ値の形式で、SQL文のBINDまたはPREPARE最適化用の一意の識別子。![]() |
| AP_PLANHASH | CHAR(16) FOR BIT DATA | アクセスパスに寄与するPLAN_TABLEの選択されたカラムに基づいて、アクセスパスを識別するために使用される。 この値は、APPLNAME、PROGNAME、VERSIONなど、アクセスパスに影響を与えない列を除外しています。 |
| AP_PLANHASHVER | INTEGER | AP_PLANHASH値の計算に使用されるハッシュアルゴリズムのバージョンを識別するために使用される。 |
| CONNECTION_TYPE | CHAR(8) | そのステートメントに対してPREPAREまたはBINDを実行した接続タイプ。 |
| CLIENT_USERID | VARCHAR(128) | クライアント・ユーザー ID の名前情報。 |
| CLIENT_APPLNAME | VARCHAR(255) | クライアント・アプリケーションの名前情報。 |
| CLIENT_WRKSTNNAME | VARCHAR(255) | クライアント・ワークステーションの名前情報。 |
STAT_ZIIP_CPU![]() |
FLOAT![]() |
IBM 専用エンジンでSQLの実行に費やされたCPU時間。![]() |
- 指定値が 2147483647 を超えている場合、列には値 2147483647 が格納されます。
- COLLID の値が DSNDYNAMICSQLCACHE である場合、統計は、同じステートメントの実行間およびスレッド間において累積的になります。 COLLID の値が DSNEXPLAINMODEYES である場合、ステートメントの単一実行のみについての値になります。 COLLID の値が DSNEXPLAINMODE EXPLAIN である場合、すべての統計列の値は 0 です。
- この列は、COLLID 列の値が「DSNEXPLAINMODEYES」または「DSNEXPLAINMODEEXPLAIN」の場合は適用できません。
APPLCOMPAT