スナップショット・モニターを使用すると、 個々のモニター・レベルにおいて以下の 2 つのカテゴリーの情報が得られます。
以下の情報が含まれます。
モニターを開始してからスナップショットが取られるまでの活動のカウントを累算します。 たとえば、以下のものをカウントできます。
たとえば、 データベース・ロック・スナップショットを取ると、 あるデータベースに接続しているアプリケーションが保持しているロックのリストを得ることができます。 最初に、LOCK スイッチをオンにして (UPDATE MONITOR SWITCHES)、 ロックのために待機した時間を収集します。
![]() |
注: | sqllib/misc/db2sampl を実行すると、 サンプル・データベースを作成して移すことができます。 |
GET SNAPSHOT コマンドを発行すると以下の内容が戻されます。
Database Lock Snapshot Database name = SAMPLE Database path = /home/bourbon/bourbon/NODE... Input database alias = SAMPLE Locks held = 5 Applications currently connected = 1 Applications currently waiting on locks = 0 Snapshot timestamp = 03-17-1999 15:40:29.976539 Application handle = 0 Application ID = LOCAL.bourbon.970411143813 Sequence number = 0001 Application name = db2bp_32 Authorization ID = BOURBON Application status = UOW Waiting Status change time = Not Collected Application code page = 850 Locks held = 5 Total wait time (ms) = 0 List of Locks Lock Object Name = 4 Node number lock is held at = 0 Object Type = Row Tablespace Name = SYSCATSPACE Granted Table Schema = SYSIBM Table Name = SYSTABLES Mode = NS Status = Granted Lock Escalation = NO Lock Object Name = 2 Node number lock is held at = 0 Object Type = Table Tablespace Name = SYSCATSPACE Granted Table Schema = SYSIBM Table Name = SYSTABLES Mode = IS Status = Granted Lock Escalation = NO Lock Object Name = 259 Node number lock is held at = 0 Object Type = Row Tablespace Name = SYSCATSPACE Granted Table Schema = SYSIBM Table Name = SYSTABLES Mode = NS Status = Granted Lock Escalation = NO Lock Object Name = 7 Object Type = Table Tablespace Name = SYSCATSPACE Granted Table Schema = SYSIBM Table Name = SYSTABLES Mode = IS Status = Granted Lock Escalation = NO Lock Object Name = 0 Object Type = Internal P Lock Tablespace Name = Table Schema = Table Name = Mode = S Status = Granted Lock Escalation = NO
このスナップショットを見ると、 現在 1 つのアプリケーションが SAMPLE データベースに接続しており、 5 つのロックを保持していることが分かります。
Locks held = 5 Applications currently connected = 1
UOW スイッチが OFF なので、 Application status が UOW Waiting になった時刻 (Status change time) は Not Collected として戻されることに注意してください。
ロック・スナップショットは、 このデータベースに接続しているアプリケーションがロックのために待機している (現在までの) 合計時間も戻します。
Total wait time (ms) = 0
これは累積カウンターの場合の例です。 モニター・データのリセットでは、 カウンターをゼロにリセットする方法を説明しています。
スナップショット・モニターの作業を実行するには、 監視したいデータベース・マネージャー・インスタンスについての SYSMAINT、 SYSCTRL、または SYSADM 権限が必要です。
スナップショット・モニターを呼び出すには、 以下のアプリケーション・プログラム・インターフェース (API) を使用します。
コマンド行プロセッサー (CLP) は、 スナップショット API に対するコマンドを使うことを主体とした入出力ユーザー・インターフェースを備えています。 たとえば、GET SNAPSHOT コマンドは db2GetSnapshot() API を呼び出します。
付録 A, データベース・システム・モニター・インターフェースでは、データベース・システム・モニターに関連したコマンドおよび API についての詳細情報を説明しています。
![]() |
次の表に、サポートされているスナップショット要求のタイプをすべてリストします。 いくつかの要求タイプの場合、一部の情報は、 関連したモニター・スイッチが ON に設定されている場合にだけ戻されます。 スイッチで必須カウンターを制御できるかどうか判別するには、 データベース・システム・モニター・データ要素を参照してください。
表の中で、 「API 要求タイプ」の列は db2GetSnapshot() スナップショット API
ルーチン中で SQLMA 入力構造に対する入力として指定される値を示しています。
API 要求タイプ | CLP コマンド | 戻される情報 |
---|---|---|
接続のリスト | ||
SQLMA_APPLINFO_ALL | アプリケーションのリスト [詳細表示] | スナップショットが取られたノード上の DB2 インスタンスが管理するデータベースに現在接続している、 すべてのアプリケーションの識別情報。 |
SQLMA_DBASE_APPLINFO | データベース dbname に関係するアプリケーションのリスト [詳細表示] | 指定のデータベースに現在接続されている各アプリケーションについて、 SQLMA_APPLINFO_ALL と同じ働きをします。 |
SQLMA_DCS_APPLINFO_ALL | DCS アプリケーションのリスト | スナップショットが取られたノード上の DB2 インスタンスが管理するデータベースに現在接続されている、 すべての DCS アプリケーションのアプリケーション識別情報。 |
データベース・マネージャーのスナップショット | ||
SQLMA_DB2 | DBM のスナップショットの取得 | 内部モニター・スイッチの設定値を含む、 データベース・マネージャー・レベルの情報。 |
DBM のモニター・スイッチの取得 | 内部モニター・スイッチの設定値を戻します。 | |
データベースのスナップショット | ||
SQLMA_DBASE | データベース dbname のスナップショットの取得 | データベースのデータベース・レベル情報およびカウンター。 情報が戻されるのは、 最低 1 つのアプリケーションがデータベースに接続している場合だけです。 |
SQLMA_DBASE_ALL | すべてのデータベースのスナップショットの取得 | ノード上の活動状態の各データベースについて、SQLMA_DBASE と同じ働きをします。 |
活動状態のデータベースのリスト | 個々の活動状態のデータベースに対する接続数。 ACTIVATE DATABASE コマンドを使用して開始したものの、 接続されていないデータベースを含みます。 | |
SQLMA_DCS_DBASE | DCS データベース dbname のスナップショットの取得 | 特定の DCS データベースのデータベース・レベル情報およびカウンター。 情報が戻されるのは、 最低 1 つのアプリケーションがデータベースに接続している場合だけです。 |
SQLMA_DCS_DBASE_ALL | すべてのデータベースのスナップショットの取得 | ノード上の活動状態の各データベースについて、 SQLMA_DCS_DBASE と同じ働きをします。 |
SQLMA_DBASE_REMOTE | 連合システム・データベースのスナップショットの取得 | 特定の連合システム・データベースのデータベース・レベル情報およびカウンター。 情報が戻されるのは、 最低 1 つのアプリケーションがデータベースに接続している場合だけです。 |
SQLMA_DBASE_REMOTE_ALL | すべての連合システム・データベースのスナップショットの取得 | ノード上の活動状態の各データベースについて、SQLMA_DBASE_REMOTE と同じ働きをします。 |
アプリケーション・スナップショット | ||
SQLMA_APPL | アプリケーションのアプリケーション ID appl-id のスナップショットの取得 | アプリケーション・レベルの情報。累積カウンター、状況情報、 および最後に実行された SQL ステートメント (ステートメント・スイッチが設定されている場合) が含まれます。 |
SQLMA_AGENT_ID | アプリケーションのエージェント ID appl-handle のスナップショットの取得 | SQLMA_APPL と同じです。 |
SQLMA_DBASE_APPLS | dbname に関係するアプリケーションのスナップショットの取得 | ノード上のデータベースに接続されている各アプリケーションについて、 SQLMA_APPL と同じ働きをします。 |
SQLMA_APPL_ALL | すべてのアプリケーションのスナップショットの取得 | ノード上にある活動状態の各アプリケーションについて、 SQLMA_APPL と同じ働きをします。 |
SQLMA_DCS_APPL | DCS アプリケーションのアプリケーション ID appl-id のスナップショットの取得 | アプリケーション・レベルの情報。累積カウンター、状況情報、 および最後に実行された SQL ステートメント (ステートメント・スイッチが設定されている場合) が含まれます。 |
SQLMA_DCS_APPL_ALL | すべての DCS アプリケーションのスナップショットの取得 | ノード上にある活動状態の各 DCS アプリケーションについて、 SQLMA_DCS_APPL と同じ働きをします。 |
SQLMA_DCS_APPL_HANDLE | DCS アプリケーションのエージェント ID appl-handle のスナップショットの取得 | SQLMA_DCS_APPL と同じです。 |
SQLMA_DCS__DBASE_APPLS | dbname に関係する DCS アプリケーションのスナップショットの取得 | ノード上のデータベースに接続された各 DCS アプリケーションについて、 SQLMA_DCS_APPL と同じ働きをします。 |
SQLMA_DBASE_APPLS_REMOTE | dbname 上の連合システム・アプリケーションのスナップショットの取得 | アプリケーション・レベルの情報。累積カウンター、状況情報、 および最後に実行された SQL ステートメント (ステートメント・スイッチが設定されている場合) が含まれます。 |
SQLMA_APPL_REMOTE_ALL | すべての連合システム・アプリケーションのスナップショットの取得 | ノード上にある活動状態の各連合システム・アプリケーションについて、 SQLMA_DBASE_APPLS_REMOTE と同じ働きをします。 |
表スナップショット | ||
SQLMA_DBASE_TABLES | dbname に関係する表のスナップショットの取得 | データベースに接続された各アプリケーションのデータベース・レベルとアプリケーション・レベルの表活動情報。 およびデータベースに接続されたアプリケーションがアクセスした各表の表レベルの表活動情報。 表スイッチが必要です。 |
ロック・スナップショット | ||
SQLMA_APPL_LOCKS | アプリケーションのアプリケーション ID appl-id に関するロックのスナップショットの取得 | アプリケーションによって保持されているロックのリスト。 また、ロック・スイッチが ON でロック待機情報がある場合は、その情報。 |
SQLMA_APPL_LOCKS_AGENT_ID | アプリケーションのエージェント ID appl-handle に関するロックのスナップショットの取得 | SQLMA_APPL_LOCKS と同じです。 |
SQLMA_DBASE_LOCKS | dbname に関するロックのスナップショットの取得 | データベースに接続された各アプリケーションについての、 データベース・レベルおよびアプリケーション・レベルのロック情報。 ロック・スイッチが必要です。 |
表スペース・スナップショット | ||
SQLMA_DBASE_TABLESPACES | dbname に関する表スペースのスナップショットの取得 | データベース・レベルの表スペース活動に関する情報。また、 データベースに接続された各アプリケーションのアプリケーション・レベル、 およびデータベースに接続された各アプリケーションがアクセスしている各表スペースの表スペース・レベルの情報も含みます。 バッファー・プール・スイッチが必要です。 |
バッファー・プール・スナップショット | ||
SQLMA_BUFFERPOOLS_ALL | すべてのバッファー・プールのスナップショットの取得 | バッファー・プール活動カウンター。 バッファー・プール・スイッチが必要です。 |
SQLMA_DBASE_BUFFERPOOLS | dbname に関するバッファー・プールのスナップショットの取得 | SQLMA_BUFFERPOOLS_ALL と同じですが、指定のデータベース専用です。 |
動的 SQL スナップショット | ||
SQLMA_DYNAMIC_SQL | dbname に関する動的 SQL のスナップショットの取得 | データベースの SQL ステートメント・キャッシュからの時刻指定ステートメント情報。 |
スナップショット・モニターでは、インスタンス接続が必要です。 インスタンス接続とは、 アプリケーションと DB2 データベース・マネージャーのインスタンスとの接続です。
インスタンスへの接続がない場合、デフォルトのインスタンス接続が作成されます。 インスタンス接続は、 初めてデータベース・システム・モニター API を呼び出す時に、 DB2INSTANCE 環境変数で指定されたインスタンスに対して暗黙的に行われます。 また、ATTACH TO コマンドを使用して明示的に接続することもできます。
一度アプリケーションが接続されると、 そのアプリケーションが呼び出すシステム・モニター要求は、 すべて接続先のインスタンスに宛てられます。 したがって、クライアント上のインスタンスに接続するだけで、 そのクライアントからリモート・サーバーをモニターできるようになります。
DB2 ステートメント・キャッシュには、 頻繁に使われる SQL ステートメントのパッケージおよび統計が保管されます。 このキャッシュのスナップショットを取ることにより、SQL の活動を調査できます。 そのようなスナップショットから戻されるレコードの量は大きくなる可能性があるため、 内容を表示する表機能があります (SQLCACHE_SNAPSHOTを参照してください)。
ステートメント・キャッシュのスナップショットは、 以下のものを使用して取ることができます。
ファイルへの書き込みを行う場合は、データベースに接続しなければなりません。 インスタンス接続を介してファイルの書き込みを試みる場合、要求は拒否されます。
区分データベース環境では、スナップショットは、インスタンスの任意のノードで取ることも、 単一のインスタンス接続を使用してグローバルに取ることもできます。 グローバル・スナップショットは、 それぞれのノードで収集されたデータを統合して単一の値を戻します。 詳細については、グローバル・スナップショットを取るを参照してください。
データベースからすべてのアプリケーションが切断して、 データベースが非活動化すると、 そのデータベースのシステム・モニター・データは入手不能になります。 任意の期間内に起こるすべてのデータベース活動について、 モニター・データを取得するには、イベント・モニターを使用できます。 または、ACTIVATE DATABASE コマンドを使用してデータベースを開始するか、 データベースに対する永続接続を保守することにより、最後のスナップショットが取られるまでデータベースを活動状態にしておくこともできます。