利用v$session_longops監控長操作
今天看到一個關於如何監控長操作的文件,這裡簡單記錄一下要點。
一、什麼情況下,操作資訊會出現在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 Optimizer=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 ;
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
可以看到,時間執行和估算的有誤差,但是大體是正確的。
在實際中,你可能透過這個查詢估算到某個SQL執行的剩餘時間很短了,但實際上操作過了很久才結束。
這是因為V$SESSION_LONGOPS只記錄部分操作的資訊,但是一個SQL可能會包含很多個操作步驟,V$SESSION_LONGOPS記錄的只是這個SQL要執行眾多操作的一步。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/231499/viewspace-63841/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 利用superlance監控supervisor執行狀態
- SpringBoot如何利用Actuator來監控應用?Spring Boot
- Zabbix監控阿里雲SLB操作指引阿里
- 利用Resource Timing監控資源載入速度
- 如何高效利用 Grafana 監控分析 TiDB 指標GrafanaTiDB指標
- 分散式監控系統Zabbix3.4-針對MongoDB效能監控操作筆記分散式MongoDB筆記
- 利用TICK搭建Docker容器視覺化監控中心Docker視覺化
- 滲透技巧——如何巧妙利用PSR監控Windows桌面Windows
- 你的SIM卡安全嗎?攻擊者利用SimJacker監控所有手機長達兩年!
- 利用Grafana監控influxdb表中資料有效性GrafanaUX
- 聊聊如何利用p6spy進行sql監控SQL
- 黑盒監控、日誌監控
- Java利用執行緒工廠監控執行緒池Java執行緒
- 6.prometheus監控--監控dockerPrometheusDocker
- TiDB監控實現--存活監控TiDB
- ? Hyperf 釋出 v1.1.4 版本,增加 Metric 監控元件元件
- Veeam ONE v12.2 釋出下載 - 監控和分析
- 使用 iotop 監控哪些程式在進行I/O操作
- 監控
- 利用 Shell 指令碼來監控 Linux 系統的記憶體指令碼Linux記憶體
- 聊聊前端監控——錯誤監控篇前端
- 雲空間影片監控的可擴充套件性:適應不斷增長的監控需求套件
- APM效能監控軟體的監控型別服務及監控流程型別
- 11.prometheus監控之黑盒(blackbox)監控Prometheus
- 3-主機監控、應用監控
- Prometheus+Grafana實現服務效能監控:windows主機監控、Spring Boot監控、Spring Cloud Alibaba Seata監控PrometheusGrafanaWindowsSpring BootCloud
- 利用API介面進行競品價格監控的綜合指南API
- 按照時序監控英偉達顯示卡的利用率
- 簡單4步,利用Prometheus Operator實現自定義指標監控Prometheus指標
- centos 監控CentOS
- openGauss 監控
- Linux 監控Linux
- nginx監控Nginx
- zabbix監控
- GreptimeDB v0.7 釋出 — 全面支援雲原生監控場景
- 藍牛伺服器監控助手v5.00 免費版伺服器
- WIFI監控軟體:WiFiRadar Pro for Mac v4.0啟用版WiFiMac
- iGlance v2.1.0最新版 (系統硬體監控工具)