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到现在的时间; 通过该列可以确定会话的非活动时间,对于清理长时间不活动的会话,非常有用 |
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相差不大,不再介绍。