動的パフォーマンス・ビュー

V$TRANSACTION 現在進行中トランザクションの確認

V$TRANSACTION

V$TRANSACTION動的パフォーマンスビューを参照する事で現在発生しているトランザクションを確認できます。SES_ADDR項目でV$SESSIONと紐付け可能なので、どのセッションでトランザクションが発生いしているか確認できます。

現在進行中トランザクション一覧出力SQL
select
 t.SES_ADDR    -- v$sessionとの結合キー
,t.XID         -- トランザクションXID
,t.XIDUSN      -- UNDOセグメント番号
,t.STATUS      -- トランザクション状態
,t.START_TIME  -- トランザクション開始時刻
,s.SID
,s.SERIAL#
,s.USERNAME
,s.SQL_EXEC_START  -- SQL実行が開始された時刻
,s.MACHINE
,s.TERMINAL
,s.SQL_ID
,s.STATE
,s.LOCKWAIT,s.PROGRAM
from v$session s inner join v$transaction t
on s.SADDR = t.SES_ADDR
order by s.SQL_ID
;
出力例

以下のような感じで出力されます。(レイアウト都合上縦表示)

SES_ADDR00000000A6CE3BE8
XID060012005C3C0000
XIDUSN6
STATUSACTIVEトランザクションの状態
START_TIME2012/2/21 0:46トランザクション開始時刻
SID29セッションID
SERIAL#18847セッションシリアル番号
USERNAMESOONI
SQL_EXEC_START SQL実行開始時間
MACHINEDESKTOP-00374JP
TERMINALunknown
SQL_ID 
STATEWAITING
LOCKWAIT 
PROGRAMSQL Developer

上記取得したSID + SERIAL# で以下SQLを使ってより詳しい状況も把握できます

スポンサーリンク
タイトルとURLをコピーしました