Contents
はじめに
db2pd コマンドは、DB2の動的な情報をリアルタイムで取得するのに役立ちます。このコマンドはDB2が予約しているメモリ情報から現在の状態を取得するコマンドです。
Oracleに詳しい方は、動的パフォーマンスビュー(V$表)に似た情報と考えれば良いと思います。
db2pdコマンドの基本
db2pd コマンドは、DB2の内部動作を観察するための強力なツールです。主にデータベースのメモリ情報、アプリケーションの接続状況、トランザクションの状態、ロックの状況などをリアルタイムで取得することができます。以下に主なオプションを紹介します:
| -applications | データベースに接続しているアプリケーションの情報を表示 |
| -dynamic | 動的SQLの情報を表示 |
| -locks | ロック状況を表示 |
| -transactions | トランザクションの状況を表示 |
実際の使用例
例として、データベースdbnameで現在実行中のSQLクエリを見てみましょう:
db2 => db2pd -db [DB名] -dynamic
Database Member 0 -- Database DBNAME -- Active -- Up 25 days 23:46:48 -- Date 2024-04-30-14.46.23.320022
Dynamic Cache:
Current Memory Used 121837591
Total Heap Size 135403929
Cache Overflow Flag 0
Number of References 522247076
Number of Statement Inserts 10175708
Number of Statement Deletes 10171147
Number of Variation Inserts 10688431
Number of Statements 4561
Dynamic SQL Statements:
Address AnchID StmtUID NumEnv NumVar NumRef NumExe Text
0x00002AEFE3439460 235 7065 0 0 1 1 SELECT * from OMG with ur
0x00002AEFE9BF5F60 235 7060 0 0 1 1 INSERT INTO OMG VALUES('1','1')
列項目の説明:
- Address: ステートメントのメモリアドレス。
- AnchID: アンカーID、特定のプランやステートメントに関連する一意の識別子。ある処理の大元のIDと認識
- StmtUID: ステートメントID。SQLクエリごとの識別子のイメージ。
- NumEnv: 環境変数の数。
- NumVar: 変数の数。
- NumRef: 参照回数。
- NumExe: 実行回数。
- Text: SQL文のテキスト。
詳細情報の取得
特定のAnchIDを指定して、さらに詳細な情報を表示することも可能です。以下のコマンドを使用します:
db2 => db2pd -db [DB名] -dynamic anch=235