(轉):學習Oracle動態效能表-(13)-V$SESSION_LONGOPS
V$SESSION_LONGOPS
本檢視顯示執行超過6秒的操作的狀態。包括備份,恢復,統計資訊收集,查詢等等。
要監控查詢執行進展狀況,你必須使用cost-based最佳化方式,並且:
l 設定TIMED_STATISTICS或SQL_TRACE引數值為true。
l 透過ANALYZE或DBMS_STATS資料包收集物件統計資訊。
你可以透過DBMS_APPLICATION_INFO.SET_SESSION_LONGOPS過程新增application-specific長執行操作資訊到本檢視。關於DBMS_APPLICATION_INFO.SET_SESSION_LONGOPS的更多資訊可以瀏覽: Supplied PL/SQL Packages and Types Reference。
V$SESSION_LONGOPS列說明
l SID:Session標識
l SERIAL#:Session串號
l OPNAME:操作簡要說明
l TARGET:操作執行所在的物件
l TARGET_DESC:目標物件說明
l SOFAR:至今為止完成的量
l TOTALWORK:總工作量
l UNITS:工作量單位
l START_TIME:操作開始時間
l LAST_UPDATE_TIME:統計項最後更新時間
l TIME_REMAINING:預計完成操作的剩餘時間(秒)
l ELAPSED_SECONDS:從操作開始總花費時間(秒)
l CONTEXT:前後關係
l MESSAGE:統計項的完整描述
l USERNAME:執行操作的使用者ID
l SQL_ADDRESS:用於連線查詢的列
l SQL_HASH_VALUE:用於連線查詢的列
l QCSID:
示例:
找一較大表,確認該表查詢將超過6秒,哎呀讓它快我們沒把握,讓它慢這可是我的強項啊~~
SQL> set timing on
SQL> create table ttt as select level lv,rownum rn from dual connect by level<10000000; --建立一個臨時表
Table created
Executed in 19.5 seconds
SQL> commit;
Commit complete
Executed in 0 seconds
SQL> select * from (select * from ttt order by lv desc) where rownum<2; --執行一個費時的查詢
LV RN
---------- ----------
9999999 9999999
Executed in 9.766 seconds --哈哈,成功超過6秒
SQL> select sid,opname,sofar,totalwork,units,sql_hash_value from v$session_longops; ----看看v$session_longops中是不是已經有記錄了
SID OPNAME SOFAR TOTALWORK UNITS SQL_HASH_VALUE
---------- ---------------------------------------------------------------- ---------- ---------- -------------------------------- --------------
10 Table Scan 47276 47276 Blocks 2583310173
Executed in 0.047 seconds
SQL> select a.sql_text from v$sqlarea a,v$session_longops b where a.HASH_VALUE=b.SQL_HASH_VALUE; --透過hash_value聯絡查詢出剛執行的查詢語句。
SQL_TEXT
--------------------------------------------------------------------------------
select * from (select * from ttt order by lv desc) where rownum<2
Executed in 0.063 seconds
Ps:itpub論壇的fenng版版數年前有篇描述了v$sessin_longops的來源,有興趣的朋友可以研究研究:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9399028/viewspace-678262/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 學習動態效能表(十)--V$SESSION_LONGOPSSessionGo
- (轉):學習Oracle動態效能表-(12)-V$PROCESSOracle
- (轉):學習Oracle動態效能表-(10)-V$FILESTATOracle
- (轉):學習Oracle動態效能表-(8)-V$SESSIONOracleSession
- (轉):學習Oracle動態效能表-(5)-V$SESSTATOracle
- (轉)學習Oracle動態效能表-(4)-V$SYSSTATOracle
- (轉):學習Oracle動態效能表-(2)-V$SQLTEXTOracleSQL
- (轉):學習Oracle動態效能表-(1)-V$SQLAREAOracleSQL
- (轉):學習Oracle動態效能表-(21)-V$UNDOSTATOracle
- (轉):學習Oracle動態效能表-(19)-v$rowcacheOracle
- (轉):學習Oracle動態效能表-(18)-V$ROLLSTATOracle
- 學習動態效能表(13)--V$OPEN_CURSOR
- (轉):學習Oracle動態效能表-(7)-V$SQLTEXT,V$SQLAREAOracleSQL
- [轉]學習Oracle動態效能表-(6)-V$SQLTEXT,V$SQLAREAOracleSQL
- 學習oracle動態效能表--v$transactionOracle
- (轉):學習Oracle動態效能表-(22)-V$WAITSTATOracleAI
- (轉):學習Oracle動態效能表-(20)-V$SYSTEM_EVENTOracle
- (轉):學習Oracle動態效能表-(16)-V$OPEN_CURSOROracle
- (轉):學習Oracle動態效能表-(14)-V$SEGSTAT ,V$SEGMENT_STATISTICSOracle
- (轉):學習Oracle動態效能表-(11)-v$latch$ v$latch_childrenOracle
- (轉):學習Oracle動態效能表-(6)-V$SQL,V$SQL_PLANOracleSQL
- (轉)學習Oracle動態效能表-(3)V$LOCK,V$LOCKED_OBJECTOracleObject
- (轉):學習Oracle動態效能表-(17)-v$parameter & v$system_parameterOracle
- 學習動態效能表第13篇--V$OPEN_CURSOR
- (轉):學習Oracle動態效能表-(15)-V$DB_OBJECT_CACHEOracleObject
- 動態檢視V$SESSION_LONGOPS學習SessionGo
- (轉):學習Oracle動態效能表-(9)-V$SESSION_WAIT,V$SESSION_EVENTOracleSessionAI
- 學習動態效能表(19)--V$UNDOSTAT
- 學習動態效能表(16)--V$ROWCACHE
- 學習動態效能表(15)--V$ROLLSTAT
- 學習動態效能表(九)--V$FILESTAT
- 學習動態效能表(七)--V$PROCESS
- 學習動態效能表(二)--v$sesstat
- 學習動態效能表(一)--v$sysstat
- 學習動態效能表(五)-v$sessionSession
- 學習動態效能表(五)--V$SESSIONSession
- (轉)Oracle動態效能檢視學習之v$processOracle
- Oracle動態效能檢視學習之 V$ROLLSTAT -- 轉Oracle