【Oracle九大效能檢視】之7.v$transaction_根據session id查session執行的事務

jst143發表於2011-03-01
【Oracle九大效能檢視】之7.v$transaction_根據session id查session執行的事務
    原文出自飛鷹工作室
1、表結構
SQL> desc v$transaction;
名稱                                      是否為空? 型別
----------------------------------------- -------- ----------------------------
ADDR                                               RAW(8)
XIDUSN                                             NUMBER
XIDSLOT                                            NUMBER
XIDSQN                                             NUMBER
UBAFIL                                             NUMBER
UBABLK                                             NUMBER
UBASQN                                             NUMBER
UBAREC                                             NUMBER
STATUS                                             VARCHAR2(16)
START_TIME                                         VARCHAR2(20)
START_SCNB                                         NUMBER
START_SCNW                                         NUMBER
START_UEXT                                         NUMBER
START_UBAFIL                                       NUMBER
START_UBABLK                                       NUMBER
START_UBASQN                                       NUMBER
START_UBAREC                                       NUMBER
SES_ADDR                                           RAW(8)
FLAG                                               NUMBER
SPACE                                              VARCHAR2(3)
RECURSIVE                                          VARCHAR2(3)
NOUNDO                                             VARCHAR2(3)
PTX                                                VARCHAR2(3)
NAME                                               VARCHAR2(256)
PRV_XIDUSN                                         NUMBER
PRV_XIDSLT                                         NUMBER
PRV_XIDSQN                                         NUMBER
PTX_XIDUSN                                         NUMBER
PTX_XIDSLT                                         NUMBER
PTX_XIDSQN                                         NUMBER
DSCN-B                                             NUMBER
DSCN-W                                             NUMBER
USED_UBLK                                          NUMBER
USED_UREC                                          NUMBER
LOG_IO                                             NUMBER
PHY_IO                                             NUMBER
CR_GET                                             NUMBER
CR_CHANGE                                          NUMBER
START_DATE                                         DATE
DSCN_BASE                                          NUMBER
DSCN_WRAP                                          NUMBER
START_SCN                                          NUMBER
DEPENDENT_SCN                                      NUMBER
XID                                                RAW(8)
PRV_XID                                            RAW(8)
PTX_XID                                            RAW(8)

2、根據session id可以查到當前session正在執行的事務資訊
select * from v$transaction where addr in (select taddr from v$session where sid=&sid );


看下面這兩個欄位可以看到事務進行到什麼程度了:
USED_UBLK
NUMBER
Number of undo blocks used
USED_UREC
NUMBER
Number of undo records used
重複查詢這兩個值,可以看到變化,可以估計事務的進度,尤其是長時間的回滾操作,當這兩個值為0,回滾也就完成了。
如SQL語句如下:
select a.sid,
       a.serial#,
       a.user#,
       a.username,
       b.addr,
       b.USED_UBLK,
       b.USED_UREC
  from v$transaction b, v$session a
where b.addr in (select a.taddr from v$session a where a.sid = &sid)


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23577591/viewspace-688221/,如需轉載,請註明出處,否則將追究法律責任。

相關文章