前端之家收集整理的这篇文章主要介绍了
v$session & v$session_wait,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
(1)v$session
v$session视图记录了当前连接到数据库的session信息
@H_
502_6@
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 ALTER6 UPDATE
7 DELETE
… …
(2)v$session_wait
v$session_wait记录了当前或最近等待的session信息,其列信息与v$session相差不大,不再介绍。