學習動態效能表(五)-v$session
在本檢視中,每一個連線到資料庫例項中的session都擁有一條記錄。包括使用者session及後臺程式如DBWR,LGWR,arcchiver等等。
V$SESSION 中的常用列
V$SESSION 是基礎資訊檢視,用於找尋使用者SID或SADDR。不過,它也有一些列會動態的變化,可用於檢查使用者。如例:
SQL_HASH_VALUE ,SQL_ADDRESS:這兩列用於鑑別預設被session執行的SQL語句。如果為null或0,那就說明這個session沒有執行任何SQL語 句。PREV_HASH_VALUE和PREV_ADDRESS兩列用來鑑別被session執行的上一條語句。
- 注意:當使用SQL*Plus進行選擇時,確認你重定義的列寬不小於11以便看到完整的數值。
STATUS :這列用來判斷session狀態是:
- Achtive :正執行SQL語句(waiting for/using a resource)
- Inactive :等待操作(即等待需要執行的SQL語句)
- Killed :被標註為刪除
下列各列提供session的資訊,可被用於當一個或多個combination未知時找到session 。
Session 資訊
- SID :SESSION標識,常用於連線其它列
- SERIAL# :如果某個SID又被其它的session使用的話則此數值自增加(當一個 SESSION 結束,另一個SESSION開始並使用了同一個SID)。
- AUDSID :審查session ID唯一性,確認它通常也用於當尋找並行查詢模式
- USERNAME :當前session在oracle中的使用者名稱。
Client 資訊
資料庫session被一個執行在資料庫伺服器上或從 中間伺服器甚至 桌面透過SQL*Net連線到資料庫的客戶端程式啟動,下列各列提供這個客戶端的資訊
- OSUSER :客戶端作業系統使用者名稱
- MACHINE :客戶端執行的機器
- TERMINAL :客戶端執行的終端
- PROCESS :客戶端程式的ID
- PROGRAM :客戶端執行的客戶端程式
要顯示使用者所連線PC 的 TERMINAL 、 OSUSER ,需在該PC的ORACLE.INI或Windows中設定關鍵字TERMINAL,USERNAME。
Application 資訊
呼叫DBMS_APPLICATION_INFO包以設定一些資訊區分使用者。這將顯示下列各列。
- CLIENT_INFO :DBMS_APPLICATION_INFO中設定
- ACTION :DBMS_APPLICATION_INFO中設定
- MODULE :DBMS_APPLICATION_INFO中設定
下列V$SESSION列同樣可能會被用到:
- ROW_WAIT_OBJ#
- ROW_WAIT_FILE#
- ROW_WAIT_BLOCK#
- ROW_WAIT_ROW#
V$SESSION 中的連線列
Column View Joined Column(s)
SID V$SESSION_WAIT, , V$SESSTAT, , V$LOCK , V$SESSION_EVENT,V$OPEN_CURSOR SID
(SQL_HASH_VALUE, SQL_ADDRESS) V$SQLTEXT, V$SQLAREA, V$SQL (HASH_VALUE, ADDRESS)
(PREV_HASH_VALUE, PREV_SQL_ADDRESS) V$SQLTEXT, V$SQLAREA, V$SQL (HASH_VALUE, ADDRESS)
TADDR V$TRANSACTION ADDR
PADDR V$PROCESS A DDR
示例:
1. 查詢你的session資訊
SELECT SID, OSUSER, USERNAME, MACHINE, PROCESS
FROM V$SESSION WHERE audsid = userenv( ¨SESSIONID¨ );
2. 當machine已知的情況下查詢session
SELECT SID, OSUSER, USERNAME, MACHINE, TERMINAL
FROM V$SESSION
WHERE terminal = ¨pts/tl¨ AND machine = ¨rgmdbs1¨ ;
3. 查詢當前被某個指定session正在執行的sql語句。假設sessionID為100
select b.sql_text
from v$session a,v$sqlarea b
where a.sql_hash_value=b. hash_value and a.sid= 1 00
尋找指定session執行的SQL語句是一個常見的需求,如果session是瓶頸的主要原因,那根據其當前在執行的語句可以檢視session在做些什麼來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/90618/viewspace-668711/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 學習動態效能表(五)--V$SESSIONSession
- (轉):學習Oracle動態效能表-(8)-V$SESSIONOracleSession
- 動態效能表第五篇--V$SESSIONSession
- 學習動態效能表(十)--V$SESSION_LONGOPSSessionGo
- 學習動態效能表(六)-(2)-V$SESSION_EVENTSession
- 學習動態效能表(六)-(1)-V$SESSION_WAITSessionAI
- (轉):學習Oracle動態效能表-(9)-V$SESSION_WAIT,V$SESSION_EVENTOracleSessionAI
- (轉):學習Oracle動態效能表-(13)-V$SESSION_LONGOPSOracleSessionGo
- 學習oracle動態效能表--v$transactionOracle
- 學習動態效能表(19)--V$UNDOSTAT
- 學習動態效能表(16)--V$ROWCACHE
- 學習動態效能表(15)--V$ROLLSTAT
- 學習動態效能表(九)--V$FILESTAT
- 學習動態效能表(七)--V$PROCESS
- 學習動態效能表(二)--v$sesstat
- 學習動態效能表(一)--v$sysstat
- 學習動態效能表(20)--V$WAITSTATAI
- 學習動態效能表(八)-(1)-v$lock
- 學習動態效能表(三)-(1)-v$sqlSQL
- 學習動態效能表(四)-(2)-V$SQLAREASQL
- 學習動態效能表(四)-(1)-v$sqltextSQL
- 學習動態效能表(八)-(2)-v$lock
- Oracle動態效能檢視學習筆記(7)_v$sessionOracle筆記Session
- 學習動態效能表(18)--V$SYSTEM_EVENT
- (轉):學習Oracle動態效能表-(12)-V$PROCESSOracle
- (轉):學習Oracle動態效能表-(10)-V$FILESTATOracle
- (轉):學習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
- 學習動態效能表(11)--v$latch$v$latch_children
- (轉):學習Oracle動態效能表-(7)-V$SQLTEXT,V$SQLAREAOracleSQL
- [轉]學習Oracle動態效能表-(6)-V$SQLTEXT,V$SQLAREAOracleSQL
- 學習動態效能表