天天看點

v$session & v$session_wait

(1)v$session

v$session視圖記錄了目前連接配接到資料庫的session資訊

Column Description
SADDR session address
SID Session identifier
SERIAL# session序列号,當某個session結束,另一個新開始的session使用了前者的sid,則此數值自加1
AUDSID auditing session ID,具有唯一性
PADDR session對應的作業系統程序位址
USER# Oracle user number
USERNAME Oracle user name
COMMAND 目前session正在執行的sql指令類型,具體編号代表什麼可以檢視v$sqlcommand
lOCKWAIT 正在等待的會話需要的的鎖的位址,如果沒有鎖,則為空。(oracle:address of the lock the session is waiting for;NULL if none)
STATUS

session的狀态:

    --ACTIVE:目前session正在執行SQL;

    --INACTIVE:等待操作,即等待執行SQL語句;

    --KILLED:session被标注為KILLED、

    --等等…

SERVER

server類型有:

    --DECICATED

    --SHARED

    --PSEUDO  

    --POLLED

    --NONE

SCHEMA schema使用者id
SCHEMANAME schema使用者名
OSUSER 連接配接到資料庫的作業系統使用者名
PROCESS 作業系統程序編号
MACHINE 連接配接到資料庫的機器名稱
PORT 連接配接到資料庫的用戶端端口
TERMINAL 連接配接到資料庫的終端名稱
PROGRAM 用戶端執行的用戶端程式
TYPE session類型
SQL_ADDRESS 與“SQL_HASH_VALUE”一起去确認目前正在被執行的SQL語句
SQL_HASH_VALUE 與“SQL_ADDRESS”一起去确認目前正在被執行的SQL語句
SQL_ID 目前正在被執行的SQL語句的ID
LOGON_TIME 登入時間
LAST_CALL_ET

如果session狀态為active,則該值表示session成為active到現在的時間;

如果session狀态為inactive,則該值表示session成為inactive到現在的時間

通過該列可以确定會話的非活動時間,對于清理長時間不活動的會話,非常有用

SEQ# 唯一辨別session目前或最後等待的數目(每次等待都遞增)
EVENT# event number
EVENT session正在等待的事件

注:COMMAND:表明目前session正在執行的sql指令類型。

SQL> select * from v$sqlcommand;
 
COMMAND_TYPE COMMAND_NAME
------------ ----------------------------------------------------------------
           0 
           1 CREATE TABLE
           2 INSERT
           3 SELECT
           4 CREATE CLUSTER
           5 ALTER CLUSTER
           6 UPDATE
           7 DELETE      
… …      

(2)v$session_wait

v$session_wait記錄了目前或最近等待的session資訊,其列資訊與v$session相差不大,不再介紹。

轉載于:https://www.cnblogs.com/lijiaman/p/6881695.html