[zt] 用v$session_longops監控long RUN操作
一、什麼情況下,操作資訊會出現在V$SESSION_LONGOPS
同時滿足以下幾個條件,操作資訊才會出現在V$SESSION_LONGOPS中。
1、操作是以下幾種操作之一
# Table scan;
# Index Fast Full Scan;
# Hash join;
# Sort/Merge;
# Sort Output;
# Rollback;
# Gather Table's Index Statistics
不同的版本下V$SESSION_LONGOPS記錄的操作可能會不一樣。
2、操作時間大於6秒
3、讀取的block數目大於一定量
1)如果是TABLE FULL SCAN,讀取的block數目至少大於10000
2)如果是Index Fast Full Scan,讀取的block數目至少大於1000
3)其他操作讀取block的數目不明
二、如何監控耗時長的操作
舉例說明。
會話1:發出查詢
suk@SUK> select * from t2;
已選擇826112行。
已用時間: 00: 00: 29.89
執行計劃
----------------------------------------------------------
0 SELECT STATEMENT ptimizer=CHOOSE (Cost=123 Card=103264 Byte
s=8880704)
1 0 TABLE ACCESS (FULL) OF 'T2' (Cost=123 Card=103264 Bytes=88
80704)
統計資訊
----------------------------------------------------------
0 recursive calls
0 db block gets
64505 consistent gets
0 physical reads
會話2:在會話1查詢過後一小段時間後(大於6s),查詢V$SESSION_LONGOPS檢視
SQL> SELECT SE.SID,
2 OPNAME,
3 TRUNC(SOFAR / TOTALWORK * 100, 2) || '%' AS PCT_WORK,
4 ELAPSED_SECONDS ELAPSED,
5 ROUND(ELAPSED_SECONDS * (TOTALWORK - SOFAR) / SOFAR) REMAIN_TIME,
6 SQL_TEXT
7 FROM V$SESSION_LONGOPS SL, V$SQLAREA SA, V$SESSION SE
8 WHERE SL.SQL_HASH_VALUE = SA.HASH_VALUE
9 AND SL.SID = SE.SID
10 AND SOFAR != TOTALWORK
11 ORDER BY START_TIME
12 ;
(
SELECT SE.SID,OPNAME,TRUNC(SOFAR / TOTALWORK * 100, 2) || '%' AS PCT_WORK,ELAPSED_SECONDS ELAPSED,ROUND(ELAPSED_SECONDS * (TOTALWORK - SOFAR) / SOFAR) REMAIN_TIME,SQL_TEXT
FROM V$SESSION_LONGOPS SL, V$SQLAREA SA, V$SESSION SE
WHERE SL.SQL_HASH_VALUE = SA.HASH_VALUE
AND SL.SID = SE.SID
AND SOFAR != TOTALWORK
ORDER BY START_TIME;
)
SID OPNAME PCT_WORK ELAPSED REMAIN_TIME SQL_TEXT
---------- ----------------------------- ------------ ---------- ----------- --------------------------
------------------------
10 Table Scan 67.07% 21 10 select * from t2
會話1的真實執行時間:29.89s
會話2從V$SESSION_LONGOPS的估算時間:21 + 10 = 31s
可以看到,時間執行和估算的有誤差,但是大體是正確的。
在實際中,你可能透過這個查詢估算到某個執行的剩餘時間很短了,但實際上操作過了很久才結束。
這是因為V$SESSION_LONGOPS只記錄部分操作的資訊,但是一個SQL可能會包含很多個操作步驟,V$SESSION_LONGOPS記錄的只是這個SQL要執行眾多操作的一步。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-696990/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 利用v$session_longops監控long RUN操作SessionGo
- 利用v$session_longops監控long RUN操作(轉)SessionGo
- 利用v$session_longops監控長操作SessionGo
- 使用v$session_longops來監控rman備份進度SessionGo
- 監控Oracle長時間執行的工作(v$session_longops)OracleSessionGo
- Oracle動態效能檢視之v$session_longops ztOracleSessionGo
- V$SESSION_LONGOPSSessionGo
- V$SESSION_LONGOPS bugSessionGo
- [zt]資料庫監控指令碼資料庫指令碼
- zt:Linux效能監控之Memory篇Linux
- Oracle RAC 的監控和調整 (zt)Oracle
- 用 Logwatch 工具監控 Linux 系統 Log 日誌(zt)Linux
- 監控批量操作進度
- 效能檢視 V$Session_LONGOPSSessionGo
- 3-主機監控、應用監控
- 操作LONG型別型別
- 網路流量監控器mrtg全攻略(zt)
- 使用SNMP來監控Linux伺服器(zt)Linux伺服器
- V$SESSION_LONGOPS 檢視的用法SessionGo
- V$SESSION_LONGOPS bug 【Blog 搬家】SessionGo
- 【監控】open-falcon v0.2 部署、小米開源監控部署
- 在fedora中使用MRTG進行系統監控(zt)
- 對table的操作進行監控
- Process Monitor監控目錄 - 監控檔案被哪個程式操作了
- [zt] Linux中常用的監控CPU整體效能工具Linux
- Zabbix監控阿里雲SLB操作指引阿里
- v$session_longops 檢視回滾進度SessionGo
- 動態檢視V$SESSION_LONGOPS學習SessionGo
- V$SESSION_LONGOPS超過系統時間SessionGo
- WIFI監控軟體:WiFiRadar Pro for Mac v4.0啟用版WiFiMac
- 分散式監控系統Zabbix3.4-針對MongoDB效能監控操作筆記分散式MongoDB筆記
- zt_Segment Advisor監控物件的碎片程度並回收物件
- Prometheus監控實戰應用Prometheus
- STANDBY中NOLOGGING操作的監控
- 學習動態效能表(十)--V$SESSION_LONGOPSSessionGo
- EJ Technologies Perfino for Mac (JVM監控代理軟體)v4.1啟用版MacJVM
- Spring Boot 揭祕與實戰(九) 應用監控篇 - HTTP 應用監控Spring BootHTTP
- Joystick Monitor for mac(的精美遊戲桿狀態監控器應用) v1.3啟用版Mac遊戲