IBM Support

[Db2] 任意の期間に実行された SQL とその実行回数を取得する方法

Question & Answer


Question

任意の期間に実行された SQL とその実行回数を取得する方法を教えてください。

Answer

アクティビティー・イベント・モニターを設定し、モニターが有効な期間に実行された SQL を集計できます。
  • アクティビティー・イベント・モニターの設定例
    1. DBADM もしくは SQLADM 権限を持ったユーザーで DB に接続します。
      $ db2 CONNECT TO <db-name>
    2. デフォルトワークロードをアクティビティ・データが収集できるように変更します。
      $ db2 ALTER WORKLOAD SYSDEFAULTUSERWORKLOAD COLLECT ACTIVITY DATA ON ALL WITH DETAILS
      すべての SQL がデフォルト・ワークロードで実行されるという前提での設定となります。
      お客様のもとでワークロードを設定されている場合はそれに応じて設定してください。
    3. アクティビティ・イベント・モニターを作成します。
      $ db2 CREATE EVENT MONITOR ACTEVMON FOR ACTIVITIES WRITE TO TABLE
      *上のステートメント実行によって current schema に以下の表が作成されます。
       ACTIVITYMETRICS_ACTEVMON
       ACTIVITYSTMT_ACTEVMON
       ACTIVITYVALS_ACTEVMON
       ACTIVITY_ACTEVMON
       CONTROL_ACTEVMON
    4. アクティビティ・イベント・モニターを有効にします。
      $ db2 SET EVENT MONITOR ACTEVMON STATE 1
  • 必要に応じてアクティビティ・イベント・モニターを停止します。
    $ db2 SET EVENT MONITOR ACTEVMON STATE 0
  • イベント・データの集計
    例えば 以下の SQL で 2019/1/23 の 9:00 ~ 12:00 までに実行された SQL と実行回数が表示できます。
    db2 "select count(st.stmtid) as num_exec, varchar(st.stmt_text,512) as txt from ACTIVITY_ACTEVMON a, ACTIVITYSTMT_ACTEVMON st where a.activity_id = st.activity_id and a.uow_id = st.uow_id and a.appl_id = st.appl_id and a.time_started between '2019-01-23-09.00.00.000000' and '2019-01-23-12.00.00.000000' group by st.stmtid, varchar(st.stmt_text,512) order by 1 desc"
     
  • イベント・データの削除方法
    イベント・データが不要になった場合、イベント・モニターを停止後に以下のステートメントでイベント・データを削除できます。
    $ db2 "truncate table ACTIVITYMETRICS_ACTEVMON"
    $ db2 "truncate table ACTIVITYSTMT_ACTEVMON"
    $ db2 "truncate table ACTIVITYVALS_ACTEVMON"
    $ db2 "truncate table ACTIVITY_ACTEVMON"
関連情報
お問合せ先
技術的な内容に関して、パスポート・アドバンテージの契約のもと Db2 テクニカル・サポートへお問い合わせください。
Db2 テクニカル・サポート

[{"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":"a8m0z00000006paAAA","label":"Administrative Tools-\u003EWLM"},{"code":"a8m500000008PmIAAU","label":"Monitors-\u003EEvent Monitor"}],"ARM Case Number":"","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF016","label":"Linux"},{"code":"PF033","label":"Windows"}],"Version":"All Versions"}]

Document Information

Modified date:
28 November 2023

UID

ibm10869984