oracle中v$session說明
現(xiàn)象
想要查詢當(dāng)前oracle數(shù)據(jù)庫有多少連接數(shù),以及這些連接都在干啥
講知識(shí)
v$session中記錄了當(dāng)前與數(shù)據(jù)庫建立連接的session信息争群,包括建立者信息、SQL語句碍拆、運(yùn)行狀態(tài)等
SELECT * FROM v$session;
各字段含義
V$session各字段 | 含義 |
---|---|
SADDR | session address |
SID | session identifier埋嵌,SID會(huì)存在重用 |
SERIAL# | 當(dāng)SID重用時(shí),該列會(huì)增加收恢,SID+SERIAL#能保證不重復(fù) |
AUDSID | audit session id梁钾∩可以通過audsid查詢當(dāng)前運(yùn)行session的sid。<code>SELECT SID FROM v$session WHERE audsid = USERENV('sessionid')</code> |
PADDR | process address姆泻,關(guān)聯(lián)v$process的addr字段零酪,可以通過這個(gè)字段查處當(dāng)前session對應(yīng)操作系統(tǒng)的那個(gè)進(jìn)程的id |
USER# | session's user id冒嫡;oracle內(nèi)部進(jìn)程USER#w為0,其他可關(guān)聯(lián)all_users的user_id可以查出username四苇。<code>SELECT * FROM all_users WHERE user_id = 'USER#的值';</code> |
USERNAME | session's username孝凌;oracle內(nèi)部進(jìn)程USERNAME為空 |
COMMAND | SQL語句的類型,1為create月腋,2為insert蟀架,3為select,6為update榆骚,0……還不知道 |
OWNERID | NULL |
TADDR | transaction address片拍,可用來關(guān)聯(lián)v$transaction的addr字段 |
LOCKWAIT | 當(dāng)前正在等待的鎖的相關(guān)信息,可與v$lock關(guān)聯(lián) |
STATUS | 當(dāng)前session狀態(tài)妓肢,ACTIVE:正在執(zhí)行SQL語句捌省;INACTIVE:等待操作;KILLED:被標(biāo)注為殺死 |
SERVER | DEDICATED:專用 |
SCHEMA# | Oracle內(nèi)部進(jìn)程的schema#為0 |
SCHEMANAME | Oracle內(nèi)部進(jìn)程的schemaname為sys |
OSUSER | 客戶端操作系統(tǒng)用戶名职恳,用PL/SQL登錄的所禀,則顯示登錄用戶名 |
PROCESS | 客戶端process id |
MACHINE | 客戶端主機(jī)名方面,例如WORKGROUP\FRANCIS-PC |
PORT | 端口 |
TERMINAL | 客戶端控制臺(tái)名稱放钦,例如FRANCIS-PC |
PROGRAM | 客戶端執(zhí)行的應(yīng)用程序,用PL/SQL則為plsqldev.exe恭金,如果是主機(jī)上一個(gè)調(diào)度程序調(diào)起的操禀,則顯示調(diào)度程序名稱,如:Getbilltag@machineName |
TYPE | session type (background or user) |
SQL_ADDRESS横腿、SQL_HASH_VALUE颓屑、SQL_ID、SQL_CHILD_NUMBER | 正在執(zhí)行的SQL狀態(tài)耿焊,與v$sql中的address, hash_value, sql_id, child_number相對應(yīng) |
PREV_SQL_ADDR揪惦、PREV_HASH_VALUE、PREV_SQL_ID罗侯、PREV_CHILD_NUMBER | 上次執(zhí)行的SQL狀態(tài) |
PLSQL_ENTRY_OBJECT_ID | NULL |
PLSQL_ENTRY_SUBPROGRAM_ID | NULL |
PLSQL_OBJECT_ID | NULL |
PLSQL_SUBPROGRAM_ID | NULL |
MODULE器腋、MODULE_HASH、ACTION钩杰、ACTION_HASH纫塌、CLIENT_INFO | 應(yīng)用通過DBMS_APPLICATION_INFO設(shè)置的一些信息,其中ACTION會(huì)顯示當(dāng)前語句執(zhí)行窗口信息 |
FIXED_TABLE_SEQUENCE | 當(dāng)session完成一個(gè)user call后就會(huì)增加的一個(gè)數(shù)值讲弄,也就是說措左,如果session inactive,它就不會(huì)增加避除。因此可以根據(jù)此字段的值變化來監(jiān)控某個(gè)時(shí)間點(diǎn)以來的session的性能情況怎披。例如胸嘁,一個(gè)小時(shí)以前,某個(gè)session的FIXED_TABLE_SEQUENCE是10000凉逛,而現(xiàn)在是20000缴渊,則表明一個(gè)小時(shí)內(nèi)其user call比較頻繁,可以重點(diǎn)關(guān)注此session的performance statistics |
ROW_WAIT_OBJ# | 被鎖定行所在表的object_id鱼炒,通過與dba_objects關(guān)聯(lián)可以得到表名OBJECT_NAME衔沼,<code>SELECT * FROM dba_objects t WHERE t.object_id = ${ROW_WAIT_OBJ#};</code>(可以用來查看當(dāng)前用戶正在對哪些表進(jìn)行操作) |
ROW_WAIT_FILE# | 被鎖定行所在的datafile id。和v$datafile中的file#關(guān)聯(lián)可以得到datafile name |
ROW_WAIT_BLOCK# | 被鎖定行所在的block |
ROW_WAIT_ROW# | session當(dāng)前正在等待的被鎖定的行 |
LOGON_TIME | session logon time(logon有登錄昔瞧、注冊的意思) |
…… | …… |