How To
Summary
Db2 データベースは、デフォルトで実行された SQL の履歴を残しません。
パッケージ・キャッシュにキャッシュされている SQL はデータベースの非活動化で消去されるだけでなく、新しい SQL の実行要求に従って LRU アルゴリズムでクリーンナップされていくため、履歴という観点では使用できません。
Objective
アクティビティー・イベント・モニターは指定された条件の SQL 実行のメトリックを実行したアプリケーションの情報と共に記録できます。アクティビティー・イベント・モニターを有効にすることで、どのようなアプリケーションがどのような SQL を実行しているかや、各 SQL のパフォーマンス・データを記録できます。
この文書はしきい値などの条件を設定せず、デフォルトのワークロードで実行されたすべての SQL の情報を記録する手法を案内します。
Steps
- データベース管理者としてデータベースに接続します。
-
db2 connect to <db_name>
-
アクティビティー・イベント・モニターを作成して有効化します。
db2 CREATE EVENT MONITOR DB2ACTIVITIES FOR ACTIVITIES WRITE TO TABLE db2 SET EVENT MONITOR DB2ACTIVITIES STATE 1
- デフォルト・ワークロードのアクティビティ収集を有効にします。
db2 ALTER WORKLOAD SYSDEFAULTUSERWORKLOAD COLLECT ACTIVITY DATA ON COORDINATOR WITH DETAILS
- アクティビティ (SQL) を実行します。
- 収集されたアクティビティを表示するために以下のような SQL ファイル (list_activities.sql) を作成します。
SELECT TIME_STARTED, ACT_EXEC_TIME, VARCHAR(A.APPL_NAME, 15) as APPL_NAME, VARCHAR(A.TPMON_CLIENT_APP, 20) AS CLIENT_APP_NAME, VARCHAR(A.APPL_ID, 30) as APPL_ID, A.ACTIVITY_ID, A.UOW_ID, VARCHAR(S.STMT_TEXT, 300) AS STMT_TEXT FROM ACTIVITY_DB2ACTIVITIES AS A, ACTIVITYSTMT_DB2ACTIVITIES AS S WHERE A.APPL_ID = S.APPL_ID AND A.ACTIVITY_ID = S.ACTIVITY_ID AND A.UOW_ID = S.UOW_ID ;
- 収集されたアクティビティを表示します。
db2 -tvf list_activities.sql
- (オプション) ワークロードの収集を停止します。
db2 ALTER WORKLOAD SYSDEFAULTUSERWORKLOAD COLLECT ACTIVITY DATA NONE
- (オプション) イベント・モニターを停止し、イベント・データを除去します。
db2 SET EVENT MONITOR DB2ACTIVITIES STATE 0 db2 TRUNCATE TABLE ACTIVITY_DB2ACTIVITIES IMMEDIATE db2 TRUNCATE TABLE ACTIVITYSTMT_DB2ACTIVITIES IMMEDIATE db2 TRUNCATE TABLE ACTIVITYMETRICS_DB2ACTIVITIES IMMEDIATE db2 TRUNCATE TABLE ACTIVITYVALS_DB2ACTIVITIES IMMEDIATE
運用上の考慮点
- データベースで実行されるすべてのアクティビティーを収集するのではなく、特定のユーザー、グループ、クライアント、アプリケーションなどが実行するアクティビティーを収集したい場合、条件を指定したワークロードを作成してアクティビティー・データの収集を有効にします。
この場合、上のステップ 4 の代わりに条件を指定したワークロードを作成してアクティビティー・データの収集を有効にします。
特定のユーザーが特定のアプリケーションを実行したときのアクティビティーを収集db2 "CREATE WORKLOAD WL1 SESSION_USER ('<auth_id>') APPLNAME ('<appl_name>') COLLECT ACTIVITY DATA ON COORDINATOR WITH DETAILS"
db2 "CREATE WORKLOAD WL1 ADDRESS ('<ip_adddress>') COLLECT ACTIVITY DATA ON COORDINATOR WITH DETAILS"
- 実行時間や CPU 時間、作成する一時表のサイズなど、一定の条件を満たすアクティビティーのみを収集する場合、しきい値を設定してしきい値を超えたアクティビティーのみを収集できます。
[Db2] しきい値を超える実行時間のトランザクションをイベント・モニターに記録する方法
Document Location
Worldwide
[{"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":"a8m500000008PmIAAU","label":"Monitors-\u003EEvent Monitor"}],"ARM Case Number":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"10.1.0;10.5.0;11.1.0;11.5.0"}]
Was this topic helpful?
Document Information
Modified date:
11 June 2024
UID
ibm16607812