【DB笔试面试697】在Oracle中,V$SESSION视图中有哪些比较实用的列?
作者:互联网
♣
题目部分
在Oracle中,V$SESSION视图中有哪些比较实用的列?
♣
答案部分
讲到Oracle的会话,就必须首先对V$SESSION这个视图中的每个列都非常熟悉。该视图在Oracle 11gR2下包含97列,在Oracle 12cR2下增加了6列,共包含103列。下面作者以表格的形式对这个视图中的重要列做详细说明。
表 3-26 V$SESSION视图
列 | 数据类型 | 说明 |
SADDR | RAW(4 | 8) | 会话地址,对应于V$TRANSACTION.SES_ADDR列。 |
SID | NUMBER | 会话标识符。 |
SERIAL# | NUMBER | 会话序列号,用来唯一地标识会话对象。如果该会话结束且其它会话以相同的会话ID开始,那么可以保证会话级的命令被应用到正确的会话对象。 |
AUDSID | NUMBER | 审计会话ID,审查SESSION ID的唯一性,通常也用于寻找并行查询模式。 SELECT SID, OSUSER, USERNAME, MACHINE, PROCESS FROM V$SESSION WHERE AUDSID = USERENV('SESSIONID'); |
PADDR | RAW(4 | 8) | 拥有这个会话的进程地址,对应于V$PROCESS.ADDR列,通常用于查询会话对应的OS进程号: SELECT B.SID, B.SERIAL#, C.SPID FROM V$SESSION B, V$PROCESS C WHERE B.PADDR = C.ADDR; |
USER# | NUMBER | Oracle用户标识符。 |
USERNAME | VARCHAR2(30) | Oracle用户名。 |
COMMAND | NUMBER | 正在执行的SQL语句类型(分析的最后一个语句)。关于该列值的含义,请参阅V$SQLCOMMAND.COMMAND列。如果该列的值为0,那么表示并没有在V$SESSION视图里记录。 |
OWNERID | NUMBER | 如果值为2147483644,那么此列的内容无效,否则此列包含拥有可移植会话的用户标符。对于利用并行从服务器的操作,将这个值解释为一个4字节的值,其低位两字节表示会话号,而高位字节表示查询协调程序的实例ID。 |
TADDR | VARCHAR2(8) | 表示事务处理状态对象的地址,对应于V$TRANSACTION.ADDR列。 |
LOCKWAIT | VARCHAR2(8) | 等待锁的地址,对应于V$LOCK的KADDR列;若当前会话没有被阻塞则为空 |
STATUS | VARCHAR2(8) | 会话的状态: •ACTIVE:当前正在执行SQL语句(waiting for/using a resource); •INACTIVE:等待操作(即等待需要执行的SQL语句); •KILLED:标记为终止,删除; •CACHED:为Oracle*XA使用而临时高速缓存; •SNIPED:会话不活动,在客户机上等待,该状态不再被允许变为ACTIVE。 |
标签:697,DB,视图,会话,SESSION,Oracle,ID,ADDR 来源: https://blog.51cto.com/lhrbest/2707536