posts - 310, comments - 6939, trackbacks - 0, articles - 3
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          轉載:學習Oracle動態性能表-(7)-V$SESSION

          Posted on 2008-06-13 22:02 詩特林 閱讀(837) 評論(0)  編輯  收藏 所屬分類: Oracle
           

          V$SESSION 

            在本視圖中,每一個連接到數據庫實例中的session都擁有一條記錄。包括用戶session及后臺進程如DBWRLGWRarcchiver等等。

          V$SESSION中的常用列

           

          V$SESSION是基礎信息視圖,用于找尋用戶SIDSADDR。不過,它也有一些列會動態的變化,可用于檢查用戶。如例:

          SQL_HASH_VALUESQL_ADDRESS:這兩列用于鑒別默認被session執行的SQL語句。如果為null0,那就說明這個session沒有執行任何SQL語句。PREV_HASH_VALUEPREV_ADDRESS兩列用來鑒別被session執行的上一條語句。

          注意:當使用SQL*Plus進行選擇時,確認你重定義的列寬不小于11以便看到完整的數值。

          STATUS:這列用來判斷session狀態是:

          l         Achtive:正執行SQL語句(waiting for/using a resource)

          l         Inactive:等待操作(即等待需要執行的SQL語句)

          l         Killed:被標注為刪除

          下列各列提供session的信息,可被用于當一個或多個combination未知時找到session

          Session信息

          l         SIDSESSION標識,常用于連接其它列

          l         SERIAL#:如果某個SID又被其它的session使用的話則此數值自增加(當一個       SESSION結束,另一個SESSION開始并使用了同一個SID)

          l         AUDSID:審查session ID唯一性,確認它通常也用于當尋找并行查詢模式

          l         USERNAME:當前sessionoracle中的用戶名。

          Client信息

          數據庫session被一個運行在數據庫服務器上或從中間服務器甚至桌面通過SQL*Net連接到數據庫的客戶端進程啟動,下列各列提供這個客戶端的信息

          l         OSUSER:客戶端操作系統用戶名

          l         MACHINE:客戶端執行的機器

          l         TERMINAL:客戶端運行的終端

          l         PROCESS:客戶端進程的ID

          l         PROGRAM:客戶端執行的客戶端程序

          要顯示用戶所連接PC TERMINALOSUSER,需在該PCORACLE.INIWindows中設置關鍵字TERMINALUSERNAME

          Application信息

          調用DBMS_APPLICATION_INFO包以設置一些信息區分用戶。這將顯示下列各列。

          l         CLIENT_INFODBMS_APPLICATION_INFO中設置

          l         ACTIONDBMS_APPLICATION_INFO中設置

          l         MODULEDBMS_APPLICATION_INFO中設置

          下列V$SESSION列同樣可能會被用到:

          l         ROW_WAIT_OBJ#

          l         ROW_WAIT_FILE#

          l         ROW_WAIT_BLOCK#

          l         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                                             ADDR

          示例:

          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語句。假設sessionID100

          select b.sql_text

           from v$session a,v$sqlarea b

           where a.sql_hash_value=b.hash_valueand a.sid=100

          尋找被指定session執行的SQL語句是一個公共需求,如果session是瓶頸的主要原因,那根據其當前在執行的語句可以查看session在做些什么。

          主站蜘蛛池模板: 延长县| 福泉市| 葫芦岛市| 昌吉市| 雅安市| 甘南县| 中方县| 肃宁县| 磐石市| 濉溪县| 嘉禾县| 奉节县| 高台县| 宜兰县| 家居| 香河县| 西和县| 广灵县| 金塔县| 海丰县| 洪湖市| 游戏| 朝阳区| 阿瓦提县| 正定县| 合山市| 北辰区| 阳朔县| 乌审旗| 西充县| 古蔺县| 苏州市| 潮安县| 新营市| 宁安市| 张家界市| 台东市| 邢台县| 康保县| 偏关县| 沈阳市|