學(xué)習(xí)動(dòng)態(tài)性能表(五)-v$session |
[君三思] 2007-5-29 |
在本視圖中,每一個(gè)連接到數(shù)據(jù)庫實(shí)例中的session都擁有一條記錄。包括用戶session及后臺(tái)進(jìn)程如DBWR,LGWR,arcchiver等等。 V$SESSION 中的常用列V$SESSION 是基礎(chǔ)信息視圖,用于找尋用戶SID或SADDR。不過,它也有一些列會(huì)動(dòng)態(tài)的變化,可用于檢查用戶。如例: SQL_HASH_VALUE ,SQL_ADDRESS:這兩列用于鑒別默認(rèn)被session執(zhí)行的SQL語句。如果為null或0,那就說明這個(gè)session沒有執(zhí)行任何SQL語句。PREV_HASH_VALUE和PREV_ADDRESS兩列用來鑒別被session執(zhí)行的上一條語句。
STATUS :這列用來判斷session狀態(tài)是:
下列各列提供session的信息,可被用于當(dāng)一個(gè)或多個(gè)combination未知時(shí)找到session 。 Session 信息
Client 信息數(shù)據(jù)庫session被一個(gè)運(yùn)行在數(shù)據(jù)庫服務(wù)器上或從 中間服務(wù)器甚至 桌面通過SQL*Net連接到數(shù)據(jù)庫的客戶端進(jìn)程啟動(dòng),下列各列提供這個(gè)客戶端的信息
要顯示用戶所連接PC 的 TERMINAL 、 OSUSER ,需在該P(yáng)C的ORACLE.INI或Windows中設(shè)置關(guān)鍵字TERMINAL,USERNAME。 Application 信息調(diào)用DBMS_APPLICATION_INFO包以設(shè)置一些信息區(qū)分用戶。這將顯示下列各列。
下列V$SESSION列同樣可能會(huì)被用到:
V$SESSION 中的連接列
示例:1. 查找你的session信息 SELECT SID, OSUSER, USERNAME, MACHINE, PROCESS FROM V$SESSION WHERE audsid = userenv( ¨SESSIONID¨ ); 2. 當(dāng)machine已知的情況下查找session SELECT SID, OSUSER, USERNAME, MACHINE, TERMINAL FROM V$SESSION WHERE terminal = ¨pts/tl¨ AND machine = ¨rgmdbs1¨ ; 3. 查找當(dāng)前被某個(gè)指定session正在運(yùn)行的sql語句。假設(shè)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執(zhí)行的SQL語句是一個(gè)常見的需求,如果session是瓶頸的主要原因,那根據(jù)其當(dāng)前在執(zhí)行的語句可以查看session在做些什么。 |