演習 10: 履歴データおよびレポートの生成

この演習では、WLM Historical Analysis Tool サンプルの使用法について説明します。

時間の見積もり: 20 分から 25 分

Db2® データベース製品には、履歴分析のために WLM アクティビティー・イベント・モニターによってキャプチャーされた情報を提供する Perl サンプル・スクリプトが含まれています。 これらのスクリプトをレビューまたは変更して、ニーズに合った追加の履歴分析レポートを作成することができます。 Perl スクリプトは、次のとおりです。
  • wlmhist.pl: 履歴データを生成します。
  • wlmhistrep.pl: 履歴データからレポートを作成します。

ステップ 1: Explain 表の作成

履歴データを生成するには、ツールを実行するユーザーのスキーマの下に Explain 表がなければなりません。 Explain 表を作成するには、/sqllib/misc ディレクトリーに進んで、以下のコマンドを実行します。

db2 CONNECT TO SAMPLE

db2 -tvf EXPLAIN.DDL

ステップ 2: アクティビティー・データを収集するようにサービス・クラスを変更する

対象となる WLM オブジェクト上で COLLECT ACTIVITY DATA 節を使用して、アクティビティーの収集を使用可能にします。 この演習の場合、デフォルト・ユーザー・サービス・スーパー・クラスのデフォルト・サービス・サブクラス中で実行されるアクティビティーに関する履歴データを生成することができます。

ALTER SERVICE CLASS SYSDEFAULTSUBCLASS UNDER SYSDEFAULTUSERCLASS
       COLLECT ACTIVITY DATA ON COORDINATOR WITH DETAILS

ステップ 3: アクティビティー・イベント・モニターの使用可能化

演習 1 のステップ 1 でアクティビティー・イベント・モニターを作成したので、まだ使用可能にしていない場合はこの時点で使用可能にします。

SET EVENT MONITOR DB2ACTIVITIES STATE 1

ステップ 4: 一部のアクティビティーの実行

一部のアクティビティーを実行して、履歴データの生成対象のアクティビティー・データを収集できるようにします。

db2 -tvf work1.db2
db2 -tvf work2.db2

ステップ 5: アクティビティーに対するイベント・モニターの無効化

履歴データを生成する前に、アクティビティーに関するイベント・モニターをオフにすることを強くお勧めします。 オフにしないと、履歴データ生成プログラムの結果として実行される DML アクティビティーもキャプチャーされ、Db2 イベント・モニター・アクティビティー表に挿入される可能性があるので、アクティビティー・データの生成対象の実際のアクティビティーの数が非常に多くなります。

CONNECT TO SAMPLE

SET EVENT MONITOR DB2ACTIVITIES STATE 0

ステップ 6: 履歴データの生成

履歴データ生成プログラム・スクリプト wlmhist.pl を実行して、アクティビティー・イベント・モニター表にキャプチャーされるアクティビティーに関する履歴データを生成します。 形式は次のようになります。

wlmhist.pl dbname user password [fromTime toTime workloadid 
        serviceClassName serviceSubclassName activityTable activityStmtTable]

オプション・パラメーターをバイパスするには、ダッシュ (-) を使用します。

追加情報: 履歴データ生成プログラム (wlmhist.pl) スクリプトは、DML に関する履歴データのみ生成します。 以前に履歴データ生成プログラム (wlmhist.pl) スクリプトを 1 回以上実行した場合は、再度実行する前に、データが重複しないように activityTable 表と activityStmtTable 表をクリアすることをお勧めします。 これらの 2 つの表をクリアしないことを選択する場合は、fromTime および toTime 入力パラメーターを必ず使用して、すでにデータが生成されているアクティビティーに関する履歴データが生成されることがないようにしてください。

この演習の場合、アクティビティー・イベント・モニターでキャプチャーされたすべてのアクティビティーに関する履歴データを生成します。

Perl wlmhist.pl sample db2inst1 password 

以下のようなエラーが通知されることもあります。

Error running explain [IBM][CLI Driver][Db2/LINUXX8664] SQL0418N  A
statement contains a use of a parameter marker that is not valid. SQLSTATE=42610
 for statement VALUES (TABLE_SCHEMA(:H00002 , :H00003   )) INTO :H00007

DBD::Db2::db do failed: [IBM][CLI Driver][Db2/LINUXX8664] SQL0418N  A
statement
contains a use of a parameter marker that is not valid. SQLSTATE=42610

履歴データを生成する際には、実際のステートメント上で Explain が実行されます。 パラメーター・マーカーのある一部のステートメント上で Explain を実行できず、エラーが戻される場合もあります。 この種のエラーが表示されるアクティビティーに関する履歴データは生成されません。

ツールによる履歴データの生成が完了すると、履歴データが正常に生成されたアクティビティーの数が通知されます。

ステップ 7: 履歴データ・レポートの生成

履歴データ・レポート・スクリプト wlmhistrep.pl を実行して、ステップ 1 で生成したデータに基づくレポートを生成します。 形式は次のようになります。

wlmhistrep.pl dbAlias userId passwd [outputFile report schemaName fromTime toTime submitter]

オプション・パラメーターをバイパスするには、ダッシュ (-) を使用します。

report パラメーターでは、以下の文字の任意の組み合わせを指定できます。

  • A: ヒットした表
  • B: ヒットしなかった表
  • C: ヒットした索引
  • D: ヒットしなかった索引
  • E: サブミッター

指定する userId パラメーターが、wlmhist テーブルの作成時に wlmhist.pl スクリプトを実行した時に使用したものと同じでない場合は、正しい schemaName を指定する必要があります。 fromTime パラメーターと toTime パラメーターは、タイム・スタンプ形式 (例えば、2007-06-06-17.00.00) で指定する必要があります。

この演習の場合、ヒットした表とヒットしなかった索引に関するレポートを生成します。

Perl wlmhistrep.pl sample db2inst1 password - AD

出力は、以下のようになります。

                TABLES HIT REPORT FOR DATABASE sample
              _______________________________________________________


TABLE NAME                     TABLE SCHEMA         % HITS        TOTAL HITS
______________________         __________________   _____________ ____________

EMPLOYEE                        KARENAM              7.14285714            2
INVENTORY                       KARENAM             14.28571429            4

ORG                             KARENAM             28.57142857            8
SALES                           KARENAM             14.28571429            4
SYSROUTINES                     SYSIBM               7.14285714            2
SYSTABLES                       SYSIBM              21.42857143            6
SYSTABLESPACES                  SYSIBM               7.14285714            2


             INDEXES NOT HIT REPORT FOR DATABASE sample
            ___________________________________________________________


TABLE NAME         TABLE SCHEMA    INDEX NAME         INDEX SCHEMA    INDEX TYPE
__________________ _______________ __________________ _______________ __________
EXPLAIN_ARGUMENT   KARENAM         ARG_I1             KARENAM         REG
HMON_ATM_INFO      SYSTOOLS        ATM_UNIQ           SYSTOOLS        REG
CUSTOMER           KARENAM         CUST_CID_XMLIDX    KARENAM         XVIL
CUSTOMER           KARENAM         CUST_NAME_XMLIDX   KARENAM         XVIL
CUSTOMER           KARENAM         CUST_PHONES_XMLIDX KARENAM         XVIL
CUSTOMER           KARENAM         CUST_PHONET_XMLIDX KARENAM         XVIL
EXPLAIN_DIAGNOSTIC KARENAM         EXP_DIAG_DAT_I1    KARENAM         REG
HMON_COLLECTION    SYSTOOLS        HI_OBJ_UNIQ        SYSTOOLS        REG
ADVISE_INDEX       KARENAM         IDX_I1             KARENAM         REG
ADVISE_INDEX       KARENAM         IDX_I2             KARENAM         REG
SYSATTRIBUTES      SYSIBM          INDATTRIBUTES01    SYSIBM          REG
SYSATTRIBUTES      SYSIBM          INDATTRIBUTES02    SYSIBM          REG
:
:

ステップ 8: 次の演習のためのリセット

デフォルト・ユーザー・サービス・スーパー・クラスのデフォルト・サービス・サブクラスに関するアクティビティー収集を使用不可にして、アクティビティー表をクリーンアップします。

ALTER SERVICE CLASS SYSDEFAULTSUBCLASS UNDER SYSDEFAULTUSERCLASS
       COLLECT ACTIVITY DATA NONE

DELETE FROM ACTIVITY_DB2ACTIVITIES
DELETE FROM ACTIVITYSTMT_DB2ACTIVITIES