可直接在 v$session檢視中查詢。
語句如:
select * from v$session where username="使用者名稱";
其中使用者名稱應為英文大寫字母。如圖:
以下為檢視各欄位說明:
SADDR - session address
SID - session identifier 常用於連結其他列
SERIAL# - SID有可能會重複,當兩個session的SID重複時,SERIAL#用來區別session(說白了某個session是由sid和serial#這兩個值確定的)
AUDSID - audit session id。可以透過audsid查詢當前session的sid。select sid from v$session where audsid=userenv("sessionid");
PADDR - process address,關聯v$process的addr欄位,透過這個可以查詢到程序對應的session
USER# - 同於dba_users中的user_id,Oracle內部程序user#為0.
USERNAME - session"s username。等於dba_users中的username。Oracle內部程序的username為空。
COMMAND - session正在執行的sql id,1代表create table,3代表select。
TADDR - 當前的transaction address。可以用來關聯v$transaction中的addr欄位。
LOCKWAIT - 可以透過這個欄位查詢出當前正在等待的鎖的相關資訊。sid + lockwait與v$loc中的sid + kaddr相對應。
STATUS - 用來判斷session狀態。Active:正執行SQL語句。inactive:等待操作。killed:被標註為殺死。
SERVER - 服務型別。
SCHEMA# - schema user id。Oracle內部程序的schema#為0。
SCHEMANAME - schema username。Oracle內部程序的為sys。
OSUSER - 客戶端作業系統使用者名稱。
PROCESS - 客戶端process id。
MACHINE - 客戶端machine name。
TERMINAL - 客戶端執行的terminal name。
PROGRAM - 客戶端應用程式。比如ORACLE.EXE或sqlplus.exe
TYPE - session型別。
SQL_ADDRESS,SQL_HASH_VALUE,SQL_ID,SQL_CHILD_NUMBER - session正在執行的sql狀態,和v$sql中的address,hash_value,sql_id,child_number對應。
PREV_SQL_ADDR,PREV_HASH_VALUE,PREV_SQL_ID,PREV_CHILD_NUMBER - 上一次執行的sql狀態。
MODULE,MODULE_HASH,ACTION,ACTION_HASH,CLIENT_INFO - 應用透過DBMS_APPLICATION_INFO設定的一些資訊。
FIXED_TABLE_SEQUENCE - 當session完成一個user call後就會增加的一個數值,也就是說,如果session掛起,它就不會增加。因此可以根據這個欄位來監控某個時間點以來的session效能情況。例如,一個小時前某個session的此欄位數值為10000,而現在是20000,則表明一個小時內其user call較頻繁,可以重點關注此session的performance statistics。
ROW_WAIT_OBJ# - 被鎖定行所在table的object_id。和dba_object中的object_id關聯可以得到被鎖定的table name。
ROW_WAIT_FILE# - 被鎖定行所在的datafile id。和v$datafile中的file#關聯可以得到datafile name。
ROW_WAIT_BLOCK# - 同上,對應塊。
ROW_WAIT_ROW# - session當前正在等待的被鎖定的行。
LOGON_TIME - session logon time.
可直接在 v$session檢視中查詢。
語句如:
select * from v$session where username="使用者名稱";
其中使用者名稱應為英文大寫字母。如圖:
以下為檢視各欄位說明:
SADDR - session address
SID - session identifier 常用於連結其他列
SERIAL# - SID有可能會重複,當兩個session的SID重複時,SERIAL#用來區別session(說白了某個session是由sid和serial#這兩個值確定的)
AUDSID - audit session id。可以透過audsid查詢當前session的sid。select sid from v$session where audsid=userenv("sessionid");
PADDR - process address,關聯v$process的addr欄位,透過這個可以查詢到程序對應的session
USER# - 同於dba_users中的user_id,Oracle內部程序user#為0.
USERNAME - session"s username。等於dba_users中的username。Oracle內部程序的username為空。
COMMAND - session正在執行的sql id,1代表create table,3代表select。
TADDR - 當前的transaction address。可以用來關聯v$transaction中的addr欄位。
LOCKWAIT - 可以透過這個欄位查詢出當前正在等待的鎖的相關資訊。sid + lockwait與v$loc中的sid + kaddr相對應。
STATUS - 用來判斷session狀態。Active:正執行SQL語句。inactive:等待操作。killed:被標註為殺死。
SERVER - 服務型別。
SCHEMA# - schema user id。Oracle內部程序的schema#為0。
SCHEMANAME - schema username。Oracle內部程序的為sys。
OSUSER - 客戶端作業系統使用者名稱。
PROCESS - 客戶端process id。
MACHINE - 客戶端machine name。
TERMINAL - 客戶端執行的terminal name。
PROGRAM - 客戶端應用程式。比如ORACLE.EXE或sqlplus.exe
TYPE - session型別。
SQL_ADDRESS,SQL_HASH_VALUE,SQL_ID,SQL_CHILD_NUMBER - session正在執行的sql狀態,和v$sql中的address,hash_value,sql_id,child_number對應。
PREV_SQL_ADDR,PREV_HASH_VALUE,PREV_SQL_ID,PREV_CHILD_NUMBER - 上一次執行的sql狀態。
MODULE,MODULE_HASH,ACTION,ACTION_HASH,CLIENT_INFO - 應用透過DBMS_APPLICATION_INFO設定的一些資訊。
FIXED_TABLE_SEQUENCE - 當session完成一個user call後就會增加的一個數值,也就是說,如果session掛起,它就不會增加。因此可以根據這個欄位來監控某個時間點以來的session效能情況。例如,一個小時前某個session的此欄位數值為10000,而現在是20000,則表明一個小時內其user call較頻繁,可以重點關注此session的performance statistics。
ROW_WAIT_OBJ# - 被鎖定行所在table的object_id。和dba_object中的object_id關聯可以得到被鎖定的table name。
ROW_WAIT_FILE# - 被鎖定行所在的datafile id。和v$datafile中的file#關聯可以得到datafile name。
ROW_WAIT_BLOCK# - 同上,對應塊。
ROW_WAIT_ROW# - session當前正在等待的被鎖定的行。
LOGON_TIME - session logon time.