演習 10: 履歴データおよびレポートの生成
この演習では、WLM Historical Analysis Tool サンプルの使用法について説明します。
時間の見積もり: 20 分から 25 分
- 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