♣
题目部分
在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。
本文选自《Oracle程序员面试笔试宝典》,作者:小麦苗
详细内容可以添加麦老师微信或QQ私聊。
About Me:小麦苗
● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用
● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/
● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解
● 版权所有,欢迎分享本文,转载请保留出处
● QQ:646634621 QQ群:618766405
● 提供OCP、OCM和高可用部分最实用的技能培训
● 题目解答若有不当之处,还望各位朋友批评指正,共同进步
DBA宝典
长按下图识别二维码或微信扫描下图二维码来关注小麦苗的微信公众号:xiaomaimiaolhr,学习最实用的数据库技术。