DATABASE_MONITOR_INFO ビュー

DATABASE_MONITOR_INFO ビューは、サーバー上のデータベース・モニターおよびプラン・キャッシュ・イベント・モニターに関する情報を返します。データベース・モニターは、データベース・モニターの開始 (STRDBMON) コマンドを使用して開始されます。 QSYS2.START_PLAN_CACHE_EVENT_MONITOR プロシージャーは、プラン・キャッシュ・イベント・モニターを開始するために使用されます。IBM i ナビゲーター内の SQL パフォーマンス・モニターは、データベースのモニターと同義であり、このビューに含まれています。

次の表は、ビューの列について説明しています。 システム名は DBMON_INFO です。スキーマは QSYS2 です。

表 1. DATABASE_MONITOR_INFO ビュー
列名 システム列名 データ・タイプ 説明
MONITOR_ID MONITOR_ID CHAR(10) このモニターの、システムで割り当てられたモニター ID。
MONITOR_TYPE MONTYPE VARCHAR(7) モニターのタイプ。
PUBLIC
モニターは、STRDBMON JOB パラメーターが現行ジョブ以外のジョブをモニターすることを示している場合は共通と見なされます。共通モニターは、データベース・モニターの終了 (ENDDBMON) コマンドを使用して明示的に終了されるまでアクティブのままです。
PRIVATE
専用モニターは、STRDBMON JOB パラメーターが現行ジョブのみをモニターすることを示している場合に行われます。このモニターは、必要に応じて、ジョブ終了処理の一部として終了されます。現行接続でアクティブな専用モニターのみが返されます。
EVENT
SQL プラン・キャッシュ・イベント・モニターは、プラン・キャッシュからデータベース・モニター・ファイルに移動される際にプランをインターセプトします。
MONITOR_STATUS STATUS VARCHAR(8) このモニターの状況。
ACTIVE
モニターはアクティブです。
INACTIVE
PUBLIC または PRIVATE モニターの場合、非アクティブであり、アクティブにすることができます。EVENT モニターの場合、項目は収集されなくなっています。
CLOSING
PUBLIC または PRIVATE のモニターがアクティブでないか、あるいは終了の処理中です。項目がモニターで再使用できるかどうかは不明です。
MONITOR_RECORD_TYPE RCDTYPE VARCHAR(6) このモニターのデータベース・レコードのタイプ。
DETAIL
基本と詳細の両方のデータベース・モニター・レコード。EVENT モニターの値は常に DETAIL です。
BASIC
基本データベース・モニター・レコードのみ。
MONITOR_LIBRARY MONLIB VARCHAR(10) このモニターのライブラリー。
MONITOR_FILE MONFILE VARCHAR(10) このモニターのデータベース・アクティビティー詳細が描き込まれるファイル。
MONITOR_MEMBER MONMBR VARCHAR(10) このモニターのメンバー。
IASP_NUMBER IASPNUMBER SMALLINT モニター・ファイルの独立補助記憶域プール (IASP) 番号。
MONITOR_MEMBER_OPTION MBROPT VARCHAR(7)

NULL 可能

このモニターが最後に開始されたときにメンバー置き換えオプションに使用された値。
  • REPLACE
  • ADD

EVENT モニターの場合は、NULL 値が入ります。

NUMBER_ROWS CARD BIGINT

NULL 可能

データベース・モニター・ファイル内の行の数。

情報が使用可能でない場合は、NULL 値が入ります。

DATA_SIZE SIZE BIGINT

NULL 可能

データベース・モニター・ファイルの合計サイズ (バイト単位)。

情報が使用可能でない場合は、NULL 値が入ります。

MONITOR_JOB_FILTER JOB VARCHAR(32) このモニターの修飾ジョブ名。 EVENT モニターの場合、これは、モニターを開始したジョブです。修飾ジョブ名の後は、ジョブ名に適用されるフィルター演算子です。これは *EQ または *NE です。

特殊値*ALL は、システム上のすべてのジョブがモニターされていることを示します。ジョブ名とユーザー名の両方に総称が許可されます。

HOST_VARIABLE HOSTVAR VARCHAR(9)

NULL 可能

このデータベース・モニターでホスト変数がどのように処理されるのか。
BASIC
ホスト変数は QQQ3010 データベース・モニター・レコードに書き込まれます。
SECURE
ホスト変数は取り込まれず、QQQ3010 レコードは書き込まれません。
CONDENSED
ホスト変数値が、列 QQDBCLOB1 内の QQQ1000 データベース・モニター・レコードに取り込まれます。QQQ3010 レコードは書き込まれません。

EVENT モニターの場合は、NULL 値が入ります。

FORCE_RECORDS FRCRCD SMALLINT

NULL 可能

専用モニターでの実行時にファイルにレコードが強制的に書き出される前にバッファーに保持するレコードの数。

システムが値を計算する場合、または EVENT モニターの場合は、NULL 値が入ります。

RUN_THRESHOLD_FILTER RUNTHLD INTEGER

NULL 可能

このモニターの SQL ステートメントの推定実行時間に基づいた、秒単位のフィルターしきい値。

フィルターに実行時間しきい値が使用されない場合、または EVENT モニターの場合は、NULL 値が入ります。

STORAGE_THRESHOLD_FILTER STGTHLD INTEGER

NULL 可能

このモニターの SQL ステートメントの推定一時記憶域使用量に基づいた、フィルターしきい値 (メガバイト単位)。

フィルターに一時しきい値が使用されない場合、または EVENT モニターの場合は、NULL 値が入ります。

INCLUDE_SYSTEM_SQL INCSYSSQL VARCHAR(3) モニターには、システム生成の SQL ステートメントのレコードが含まれます。
YES
モニター・レコードは、ユーザー指定とシステム生成の両方の SQL ステートメントに対して生成されます。
NO
モニター・レコードは、ユーザー指定の SQL ステートメントに対してのみ生成されます。
INI
PUBLIC または PRIVATE モニターの場合、レコードは、QAQQINI 照会オプションの SQL_DBMON_OUTPUT オプションの値に基づいて生成されます。
FILE_FILTER FTRFILE VARCHAR(2728)

NULL 可能

フィルターに使用されている最大 10 個の修飾ファイル参照のリスト。各ファイル名の後は、ファイル名に適用されるフィルター演算子です。これは *EQ または *NE です。複数のファイルがリストされている場合、コンマと単一ブランクで項目が区切られます。ファイル名またはライブラリー名のいずれかを総称にすることができます。

ファイル名の特殊値 *ALL は、ライブラリー内のすべてのファイルを示します。

フィルターに使用されるデータベース・ファイルがない場合は、NULL 値が入ります。

USER_FILTER FTRUSER VARCHAR(158)

NULL 可能

フィルターに使用されている最大 10 個のユーザー・プロファイルのリスト。各ユーザー・プロファイル名の後は、ユーザー・プロファイルに適用されるフィルター演算子です。これは *EQ または *NE です。複数のプロファイルがリストされている場合、コンマと単一ブランクで項目が区切られます。プロファイル名は総称にできます。

フィルターでユーザー・プロファイルが使用されない場合は、NULL 値が入ります。

TCPIP_FILTER FTRINTNETA VARCHAR(254)

NULL 可能

TCP/IP アドレスまたはホスト名がフィルターに使用されます。

これは IPv4、IPv6、または IP ホスト・ドメイン名、あるいは特殊値 *LOCAL です。

フィルターに TCP/IP アドレスおよびホスト名が使用されていない場合、または EVENT モニターの場合は、NULL 値が入ります。

LOCAL_PORT_FILTER FTRLCLPORT INTEGER

NULL 可能

フィルターは、ローカル TCP/IP ポート番号に基づいて行われます。モニター・レコードは,指定されたローカルTCP/IPポートのために実行しているTCP/IPデータベース・サーバー・ジョブに対して作成されます。 QRWTSRVRおよびQZDASOINITという名前のジョブは,これらのサーバー・ジョブの例です。

IBM i の適切に定義されたポート番号の説明については、『ホスト・サーバーおよびサーバー・マッパー用のポート番号』を参照してください。

フィルターにポート番号が使用されない場合、または EVENT モニターの場合は、NULL 値が入ります。

QUERY_GOVERNOR_FILTER FTRQRYGOVR VARCHAR(11)

NULL 可能

照会管理プログラムが、フィルターに使用されます。
ALL
モニター・レコードは、照会管理プログラム制限を超えたときに収集されます。
CONDITIONAL
モニター・レコードは、照会管理プログラム制限を超えたときに条件付きで収集されます。

照会管理プログラムがフィルターに使用されていない場合、または EVENT モニターの場合は、NULL 値が入ります。

CLIENT_ACCTNG_FILTER FTRCLTACG VARCHAR(128)

NULL 可能

CURRENT CLIENT_ACCTNG 特殊レジスターが、フィルターに使用されます。

フィルターに CURRENT CLIENT_ACCTNG 特殊レジスターが使用されない場合、または EVENT モニターの場合は、NULL 値が入ります。

CLIENT_APPLNAME_FILTER FTRCLTAPP VARCHAR(128)

NULL 可能

CURRENT CLIENT_APPLNAME 特殊レジスターが、フィルターに使用されます。

フィルターに CURRENT CLIENT_APPLNAME 特殊レジスターが使用されない場合、または EVENT モニターの場合は、NULL 値が入ります。

CLIENT_PROGRAMID_FILTER FTRCLTPGM VARCHAR(128)

NULL 可能

CURRENT CLIENT_PROGRAMID 特殊レジスターが、フィルターに使用されます。

フィルターに CURRENT CLIENT_PROGRAMID 特殊レジスターが使用されない場合、または EVENT モニターの場合は、NULL 値が入ります。

CLIENT_USERID_FILTER FTRCLTUSR VARCHAR(128)

NULL 可能

CURRENT CLIENT_USERID 特殊レジスターが、フィルターに使用されます。

フィルターに CURRENT CLIENT_USERID 特殊レジスターが使用されない場合、または EVENT モニターの場合は、NULL 値が入ります。

CLIENT_WRKSTNNAME_FILTER FTRCLTWS VARCHAR(128)

NULL 可能

CURRENT CLIENT_WRKSTNNAME 特殊レジスターが、フィルターに使用されます。

フィルターに CURRENT CLIENT_WRKSTNNAME 特殊レジスターが使用されない場合、または EVENT モニターの場合は、NULL 値が入ります。

SQL_CODE_FILTER FTRSQLCODE VARCHAR(7)

NULL 可能

ステートメント実行からの SQLCODE 結果がフィルターにどのように使用されるのか。
NONZERO
非ゼロの SQLCODE 値を持つすべての SQL ステートメントがモニターに含まれます。
ERROR
ゼロより小さい SQLCODE 値を持つすべての SQL ステートメントがモニターで収集されます。
WARNING
ゼロより大きい SQLCODE 値を持つすべての SQL ステートメントがモニターで収集されます。
SQLCODE
SQLCODE_VALUE 列の値に完全一致している SQLCODE を持つすべての SQL ステートメントがモニターで収集されます。

ステートメントの SQLCODE がフィルターで使用されていない場合、または EVENT モニターの場合は、NULL 値が入ります。

SQLCODE_VALUE SQLCODEVAL INTEGER

NULL 可能

フィルターで使用する正または負の SQLCODE 値。

SQL_CODE_FILTER 列に SQLCODE 以外の値が含まれている場合は、NULL 値が入ります。

例 1: すべてのアクティブ PUBLIC モニターの MONITOR_ID、および MONITOR_ID に関連付けられているファイル名を取得します。

SELECT MONITOR_ID, MONITOR_LIBRARY, MONITOR_FILE 
  FROM QSYS2.DATABASE_MONITOR_INFO 
  WHERE MONITOR_STATUS = 'ACTIVE' AND 
        MONITOR_TYPE = 'PUBLIC'

例 2: 1 ギガより大きい出力ファイルが含まれているアクティブ・モニターを探します。

SELECT MONITOR_LIBRARY, MONITOR_FILE, NUMBER_ROWS, DATA_SIZE
  FROM QSYS2.DATABASE_MONITOR_INFO 
  WHERE MONITOR_STATUS = 'ACTIVE' AND 
        DATA_SIZE > 1073741824 

例 3: 特定の SQLCODE (FTRSQLCODE) に基づいてフィルタリングしているすべてのアクティブ・モニターを探します。

SELECT MONITOR_ID, MONITOR_LIBRARY, MONITOR_FILE, SQLCODE_VALUE  
  FROM QSYS2.DATABASE_MONITOR_INFO   
  WHERE MONITOR_STATUS = 'ACTIVE' AND 
        SQL_CODE_FILTER = 'SQLCODE'  

例 4: ユーザーの SQL プラン・キャッシュ・イベント・モニターの MONITOR_ID を取得し、それを使用してアクティブなイベント・モニターを終了します。

CALL QSYS2.END_PLAN_CACHE_EVENT_MONITOR (SELECT MONITOR_ID
                                         FROM QSYS2.DATABASE_MONITOR_INFO
                                         WHERE MONITOR_TYPE = 'EVENT' AND 
	                                           MONITOR_LIBRARY = 'USERLIB')