機能
GV$OB_TRANSACTION_PARTICIPANTS ビューは、すべてのOBServerノード上でアクティブなトランザクションの参加者情報を表示するために使用されます。
フィールド説明
フィールド名 |
型 |
NULL許容 |
説明 |
|---|---|---|---|
| TENANT_ID | bigint(20) | NO | テナントID。 |
| SVR_IP | varchar(46) | NO | サーバーIPアドレス。 |
| SVR_PORT | bigint(20) | NO | サーバーポート番号。 |
| SESSION_ID | bigint(20) | NO | セッションID。 |
| SCHEDULER_ADDR | varchar(64) | NO | スケジューラーが所属するノードのアドレス。 |
| TX_TYPE | varchar(11) | NO | トランザクションタイプ:
|
| TX_ID | bigint(20) | NO | トランザクションID。 |
| LS_ID | bigint(20) | NO | 所属ログストリームID。 |
| PARTICIPANTS | varchar(1024) | NO | 参加者リスト。 |
| CTX_CREATE_TIME | timestamp(6) | YES | コンテキスト作成時刻。 |
| TX_EXPIRED_TIME | timestamp(6) | YES | トランザクションのタイムアウト時刻。 |
| STATE | varchar(13) | NO | コンテキストのコミット状態。 |
| ACTION | varchar(10) | NO | 前回のトランザクションで実行されたアクション:
|
| PENDING_LOG_SIZE | bigint(20) | NO | このトランザクションにおいて、当該参加者がまだディスクにフラッシュしていないログサイズ。 |
| FLUSHED_LOG_SIZE | bigint(20) | NO | このトランザクションにおいて、当該参加者がディスクにフラッシュ済みのログサイズ。 |
| ROLE | varchar(8) | NO | そのレプリカのロール。値0と1はそれぞれLeaderとFollowerを表す。 |
| COORD | bigint(20) | NO | 対応するコーディネーターLS ID(コミット段階に入ってから有効)。 |
| LAST_REQUEST_TIME | timestamp(6) | YES | 最後に外部リクエストを受信した時刻。 |
| FORMATID | bigint(20) | NO | XID形式のタイプ。 |
| GLOBALID | varchar(257) | NO | XAトランザクションのグローバル識別子。 |
| BRANCHID | varchar(257) | NO | XAトランザクションのブランチ限定子。 |
よく使われるSQL
GV$OB_TRANSACTION_PARTICIPANTS ビューは、クラスタ内のすべてのアクティブトランザクションの情報を集計するために使用されます。トランザクションがN個のログストリームに対する書き込み操作を含む場合、各ログストリームごとに1件のレコードが生成されます。このビューを使用して、時間のかかるトランザクションを統計できます。
GV$OB_TRANSACTION_PARTICIPANTS 仮想テーブルで、実行時間が100秒を超えるアクティブなトランザクションの参加者を統計します。SQL構文は以下のとおりです:
obclient> SELECT svr_ip, tx_id, ls_id from GV$OB_TRANSACTION_PARTICIPANTS where tenant_id = xxx and ctx_create_time < date_sub(now(), INTERVAL 100 SECOND);
クエリ結果の tx_id フィールドに基づいて、GV$OB_SQL_AUDIT でそのトランザクション内のすべてのSQLや実行時間などの情報を検索できます。