LOTUS DOMINO と DB2


データベースのモニタースナップショットを生成する
スナップショットは、分析中の要素をモニターしているときのある時点でのビューです。この要素には、累積もあります。累積要素には、モニターの開始とスナップショット時点での終了に関する情報が含まれています。 他の (累積でない) 要素には、システムでのアクティビティによって異なるゲージの要素が反映されています。

IBM(R) DB2 Universal Database(R) Enterprise Server Edition には、いくつかのデフォルトのモニタリングスイッチが設定されています。 各モニタリングスイッチによって、特定の設定パラメータのデータが収集されます。DB2 に含まれるデフォルトのモニタリングスイッチは次のとおりです。
設定パラメータデータベースのデフォルトのモニタリングスイッチ
Buffer PoolDFT_MON_BUFPOOL = ON
LockDFT_MON_LOCK = OFF
SortDFT_MON_SORT = OFF
StatementDFT_MON_STMT = OFF
TableDFT_MON_TABLE = OFF
Unit of workDFT_MON_UOW = OFF
DB2 コマンド行プロセッサ (CLP) から次のコマンドを入力して、これらのスイッチのリストを生成できます。


後でスナップショットの取得に使用するのと同じプロセスを使用して、モニターを有効にします。Microsoft Windows プラットフォームの場合は cmd.exe セッションを使用し、IBM(R) AIX(R)、Linux、UNIX の場合はシェルを使用します。

デフォルトでは、timestamp パラメータがオンになっていますが、timestamp はオフにできるため、明示的にオンにすることをお勧めします。これが処理中のログのタイムスタンプです。

スイッチがオンに設定されている設定パラメータに対して、モニタリングセッション中に収集されたデータのスナップショットを生成することができます。診断用のスナップショットを生成するには、DB2 のモニターをオンにしておく必要があります。

データベースのモニタースナップショットを取得するには、CLP から次のコマンドを入力します。


動的な SQL スナップショットの結果SQL スナップショットを生成すると、スナップショット出力がコンピュータのモニターに表示されます。 ログファイルには保存されません。後で情報を確認できるようにスナップショットをファイルに保存するには、次のコマンドを使用します。
スナップショットを取得し、I/O リダイレクションを使用して出力をファイルに保存するには、同じプロセスで次のコマンドを発行します。

メモ このコマンドについても次に説明します。


コマンドの説明記号 > (一重の「より大きい」) では、コマンドの出力がファイルに書き込まれます。ファイルのテキストが上書きされます。記号 >> (二重の「より大きい」) では、コマンドの出力がファイルに追加されます。既存のテキストは上書きされず、ファイルの最後に新しいテキストが追加されるだけです。
この一連のコマンドによって、次の結果が得られます。

1 つのステートメントで生成される出力のサンプルを次に示します。
出力説明
Number of executions = 20検索の実行回数
Number of compilations = 1SQL コンパイラとオプティマイザーがステートメントを処理した回数
Worst preparation time (ms) = 3最悪のケース (コンパイラとオプティマイザーの処理)
Best preparation time (ms) = 3最良のケース (コンパイラとオプティマイザーの処理)
Internal rows deleted = 0temp
Internal rows inserted = 0temp
Rows read = 0temp を含む
Internal rows updated = 0temp
Rows written = 0temp を含む
Statement sorts = 20このステートメントの実行中に DB2 がデータをソートした回数。通常は [Number of executions] と等しい。
Statement sort overflows = 0ディスクにあふれるソートスペース (ソートに対しても適切ではないが、このことが発生した場合は本当に好ましくない)
Total sort time = 0Sec.ms -- すべての実行にわたってソートする場合の本当のコストを示す。この例では、ソートは効率的です。
Buffer pool data logical reads = 0データ行を含むページが、ディスクからデータを読み込まずにアクセスされた回数
Buffer pool data physical reads = 0データ行を含むページがアクセスされ、ディスクからデータが読み込まれた回数
Buffer pool temporary data logical reads = 0一時データ行 (ソートされたデータなど) を含むページが、ディスクからデータを読み込まずにアクセスされた回数
Buffer pool temporary data physical reads = 0一時データ行 (ソートされたデータなど) を含むページがアクセスされ、ディスクからデータが読み込まれた回数
Buffer pool index logical reads = 1300索引データを含むページが、ディスクからデータを読み込まずにアクセスされた回数
Buffer pool index physical reads = 0索引データを含むページがアクセスされ、ディスクからデータが読み込まれた回数
Buffer pool temporary index logical reads = 0一時索引データ (ソートされたデータなど) を含むページが、ディスクからデータを読み込まずにアクセスされた回数
Buffer pool temporary index physical reads = 0一時索引データ (ソートされたデータなど) を含むページがアクセスされ、ディスクからデータが読み込まれた回数
Total execution time (sec.ms) = 0.104943 (across all executions)
Total user cpu time (sec.ms) = 0.100145 (")
Total system cpu time (sec.ms) = 0.010015 (")
Statement text = SELECT nsfid, viewid, collation, branch, hassubcategory, refunid, COUNT(*) FROM GRP3.ND002115F385256FF0 WHERE refunid IN ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)AND nsfid=?AND viewid = ?AND collation = ?AND branch = ?AND hassubcategory = ?GROUP BY viewid, nsfid, collation, branch, hassubcategory, refunid ORDER BY viewid, nsfid, collation, branch, hassubcategory, refunid (DB2 から見た場合の実際のステートメント)

スナップショットを使用してネガティブなロック動作を検出するスナップショットに収集されたデータを使用して、ネガティブなロック動作を検出します。 このためには、「Database Lock Snapshot」というセクションを探します。スナップショットのロックエントリは、次の例のようになります。
Lock Name =0x0D000700000000000000000054
Lock Attributes =0x00000000
Release Flags =0x00000001
Lock Count =1.00
Hold Count =1.00
Lock Object Name =7.00
Object Type =Table
Tablespace Name =GRP8
Table Schema =GRP8
Table Name =NSFNOTE
Mode =X
このスナップショットのデータは、locklist 設定が小さすぎることを示しています。DB2 は、複数の行ロックを 1 つの排他的な表ロックに集約しました。これは、システムのパフォーマンスに重大な結果をもたらします。

DB2 のモニターのスナップショットに、行ロックが表ロックに拡大された事象が数多く示されている場合は、ロックリストパラメータのサイズを増やすことを検討してください。

ロックリストパラメータの設定について詳しくは、「データベースのソートヒープパラメータとロックリストパラメータの値を変更する」を参照してください。

関連項目