(轉):學習Oracle動態效能表-(16)-V$OPEN_CURSOR
本檢視列出session開啟的所有cursors,很多時候都將被用到,比如:你可以透過它檢視各個session開啟的cursor數。
當診斷系統資源佔用時,它常被用於聯接v$sqlarea和v$sql查詢出特定SQL(高邏輯或物理I/O)。然後,下一步就是找出源頭。在應用環境,基本都是同一類使用者登陸到資料庫(在V$SQLAREA中擁有相同的PARSING_USER_ID),而透過這個就可以找出它們的不同。V$SQLAREA中的統計項在語句完全執行後被更新(並且從V$SESSION.SQL_HASH_VALUE中消失)。因此,你不能直接找到session除非語句被再次執行。不過如果session的cursor仍然開啟著,你可以透過v$open_cursor找出執行這個語句的session。
V$OPEN_CURSOR中的連線列
Column View Joined Column(s)
----------------------------- ---------------------------------------- -----------------------------
HASH_VALUE, ADDRESS V$SQLAREA, V$SQL, V$SQLTEXT HASH_VALUE, ADDRESS
SID V$SESSION SID
示例:
1.找出執行某語句的session:
SELECT hash_value, buffer_gets, disk_reads
FROM V$SQLAREA
WHERE disk_reads > 1000000
ORDER BY buffer_gets DESC;
HASH_VALUE BUFFER_GETS DISK_READS
---------- ----------- ----------
1514306888 177649108 3897402
478652562 63168944 2532721
360282550 14158750 2482065
3 rows selected.
SQL> SELECT sid FROM V$SESSION WHERE sql_hash_value = 1514306888 ;
no rows selected
--直接透過hash_value查詢v$session,沒有記錄
SQL> SELECT sid FROM V$OPEN_CURSOR WHERE hash_Value = 1514306888 ;
SID
-----
1125
233
935
1693
531
5 rows selected.
--透過hash_value在v$open_cursor中查詢sid(只有在session的cursor仍然開啟的情況下才有可能找到)
2.列出擁有超過400個cursor的sessionID
SQL> SELECT sid, count(0) ct FROM v$open_cursor
GROUP BY sid HAVING COUNT(0) > 400 ORDER BY ct desc;
事實上,v$open_cursor是一個相當常用的檢視,特別是web開發應用的時候。僅透過它一個檢視你就能分析出當前的連線情況,主要執行語句等。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9399028/viewspace-745235/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle's V$ Views(轉)OracleView
- 動態生成表-判斷表是否存在效能對比
- [20201207]12c v$open_cursor檢視.txt
- Oracle 巢狀表(轉)Oracle巢狀
- oracle大表效能最佳化Oracle
- 動態規劃學習筆記動態規劃筆記
- oracle 表移動表空間Oracle
- Oracle表移動表空間Oracle
- 跟我一起學習和開發動態表單系統-動態表單系統的技術實現與優勢(2)
- Oracle Haip無法啟動問題學習OracleAI
- 機器學習的靜態特徵和動態特徵機器學習特徵
- [20200417]跟蹤特定sql語句以及v$open_cursor檢視.txtSQL
- 動態元件與v-on元件
- 【MyBatis學習總結 (五),動態SQL】MyBatisSQL
- Oracle Tuning (Oracle 效能調整)的一些總結(轉)Oracle
- 李沐動手學深度學習V2-chap_preliminaries深度學習
- 【react】實現動態表單中巢狀動態表單React巢狀
- Vue.js基礎學習(三) -------------動態繫結v-bind的介紹和使用Vue.js
- Oracle DG資料庫狀態轉換Oracle資料庫
- ABAP動態內表
- angular動態表單Angular
- Oracle Tuning (Oracle 效能調整)的一些總結(轉)2Oracle
- 學習日記2020-11-16論文學習
- 動手學強化學習(四):動態規劃演算法強化學習動態規劃演算法
- java反射之動態代理學習筆記Java反射筆記
- Python學習筆記6——動態型別Python筆記型別
- DEDE整站動態/靜態轉換
- Oracle學習總結Oracle
- Oracle學習路線Oracle
- [20200422]跟蹤特定sql語句以及v$open_cursor檢視(補充).txtSQL
- [20200417]跟蹤特定sql語句以及v$open_cursor檢視2.txtSQL
- 3月16日學習進度
- python基礎學習16—-模組Python
- Python學習之路16-使用APIPythonAPI
- 【Go學習筆記16】解析xmlGo筆記XML
- oracle之 手動建立 emp 表 與 dept 表Oracle
- oracle的靜態註冊和動態註冊Oracle
- 動態規劃演算法(DP)學習<1>動態規劃演算法
- iOS Tangram(VirtualView)動態元件的學習與使用iOSView元件