V$SESSION

V$SESSION 展示每个当前session的信息。

原有的运行时诊断视图中的字段(除了共有的字段)列在oracle兼容字段的后边。

表60 V$SESSION 结构
列名 类型 描述
SADDR BINARY(8) Session 地址(取Session的线程地址)
SID NUMERIC(1000,38) Session ID
SPID INT 实际线程ID
SERIAL# NUMERIC(1000,38) Session序列号。用于唯一的标识一个session的对象。若一个session结束并且另一个session使用同一个ID开始,确保session级别的命令应用于正确的session对象。
AUDSID NUMERIC(1000,38) 审计 session ID(目前取固定值NULL)
PADDR BINARY(8) 拥有session的进程地址(同SADDR)
USER# NUMERIC(1000,38) 用户ID
USERNAME VARCHAR(128) 用户名
COMMAND NUMERIC(1000,38) 在执行的命令(最新解析的语句)。(目前取固定值NULL)
OWNERID NUMERIC(1000,38) 迁移会话的拥有者的用户ID;若该列的值为2147483644时,该列的值为无效值(取固定值2147483644)
TADDR VARCHAR(8) 事务状态对象的地址(目前取固定值NULL)
LOCKWAIT VARCHAR(16) 会话正在等待的锁的地址;若锁没有则为NULL
STATUS VARCHAR(8) session的状态: ACTIVE (当前执行的SQL) INACTIVE KILLED(标记为终止) SNIPED(会话不活动,在客户机上等待)
SERVER VARCHAR(9) 服务器类型: DEDICATED(取固定值"DEDICATED")
SCHEMA# NUMERIC(1000,38) 模式用户ID
SCHEMANAME VARCHAR(128) 当前默认模式名
OSUSER VARCHAR(128) 操作系统客户端用户名(仅操作系统认证时有效)
PROCESS VARCHAR(24) 线程ID号
MACHINE VARCHAR(64) 客户端操作系统机器名
PORT NUMERIC(1000,38) 客户端端口号
TERMINAL VARCHAR(16) 操作系统终端名(目前取固定值NULL)
PROGRAM VARCHAR(64) 操作系统程序名
TYPE VARCHAR(10) 会话类型
SQL_ADDRESS BINARY(8) 和SQL_HASH_VALUE一起使用可以标记正在运行的SQL语句(目前取固定值NULL)
SQL_HASH_VALUE NUMERIC(1000,38) 和SQL_ADDRESS一起使用可以标记正在运行的SQL语句(目前取固定值NULL)
SQL_ID VARCHAR(13) 当前正在执行SQL的HASH值
SQL_CHILD_NUMBER NUMERIC(1000,38) 当前正在执行的SQL语句的child number(目前取固定值NULL)
SQL_EXEC_START DATE 当前会话正在执行的SQL的开始时间;若SQL_ID为NULL则取值为NULL
SQL_EXEC_ID NUMERIC(1000,38) SQL运行ID;SQL_ID为NULL则取值为NULL,或SQL的执行尚未开始(参考V$SQL_MONITOR)
PREV_SQL_ADDR BINARY(8) 和PREV_HASH_VALUE 一起可以区分最近执行的SQL语句(目前取固定值NULL)
PREV_HASH_VALUE NUMERIC(1000,38) 和SQL_HASH_VALUE一起可以区分最近执行的SQL语句(目前取固定值NULL)
PREV_SQL_ID VARCHAR(13) 最近执行的SQL语句的SQL_ID
PREV_CHILD_NUMBER NUMERIC(1000,38) 最近执行的SQL语句的Child number(目前取固定值NULL)
PREV_EXEC_START DATE 最近执行的SQL语句的开始时间
PREV_EXEC_ID NUMERIC(1000,38) 最近执行的SQL语句的SQL_EXEC_ID
PLSQL_ENTRY_OBJECT_ID NUMERIC(1000,38) 堆栈中最高层的PL/SQL子程序的对象ID;若堆栈中没有PL/SQL子程序,则取值为NULL(目前取固定值NULL)
PLSQL_ENTRY_SUBPROGRAM_ID NUMERIC(1000,38) 堆栈中最高层的PL/SQL子程序的ID; 若堆栈中没有PL/SQL子程序,则取值为NULL(目前取固定值NULL)
PLSQL_OBJECT_ID NUMERIC(1000,38) 正在执行的PL/SQL子程序的对象ID;若正在执行SQL语句则为NULL(目前取固定值NULL)
PLSQL_SUBPROGRAM_ID NUMERIC(1000,38) 正在执行的PL/SQL子程序ID;若正在执行SQL语句则为NULL
MODULE VARCHAR(64) 正在运行的模块名(目前取固定值NULL)
MODULE_HASH NUMERIC(1000,38) MODULE 列的Hash值(目前取固定值NULL)
ACTION VARCHAR(64) 正在运行的活动名(目前取固定值NULL)
ACTION_HASH NUMERIC(1000,38) ACTION列的Hash值(目前取固定值NULL)
CLIENT_INFO VARCHAR(64) 过程调用时设置的信息(目前取固定值NULL)
FIXED_TABLE_SEQUENCE NUMERIC(1000,38) 此列为一个数字,会话每完成一次向数据库的调用该数字会增加,查询动态性能表时数字不会增加。该列可以用于性能监视器监视数据库的统计信息。每次性能监视器监视数据,它只需看正在活动的会话或此列的值比上次监视时的此列最高值还高的会话。从性能监视器最后一次监视数据库开始,所有的其余会话就已经是空闲的了(目前取固定值NULL)
ROW_WAIT_OBJ# NUMERIC(1000,38) ROW_WAIT_ROW#中指定的行所在表的对象ID(目前取固定值NULL)
ROW_WAIT_FILE# NUMERIC(1000,38) 包含ROW_WAIT_ROW#中指定的行的数据文件的标识。该列的值为有效的条件为,会话正在等待另一个事务的提交并且ROW_WAIT_OBJ#不是-1(目前取固定值NULL)
ROW_WAIT_BLOCK# NUMERIC(1000,38) 包含ROW_WAIT_ROW#中指定的行的block的标识。该列的值为有效的条件为,会话正在等待另一个事务的提交并且ROW_WAIT_OBJ#不是-1。(目前取固定值NULL)
ROW_WAIT_ROW# NUMERIC(1000,38) 当前被锁定的行。该列的值为有效的条件为,会话正在等待另一个事务的提交并且ROW_WAIT_OBJ#不是-1。(目前取固定值NULL)
TOP_LEVEL_CALL# NUMERIC(1000,38) Oracle顶层调用号(目前取固定值NULL)
LOGON_TIME DATE 登录时间
LAST_CALL_ET NUMERIC(1000,38) 最后一次执行语句完毕到当前的时间,即会话的当前空闲时间,每次执行新的语句后置0
PDML_ENABLED VARCHAR(3) 该列已经被PDML_STATUS列代替(目前取固定值NULL)
FAILOVER_TYPE VARCHAR(13) 指明对于该会话应用透明故障转移(TAF)是否开启了,开启到了什么程度(目前取固定值NULL)
FAILOVER_METHOD VARCHAR(10) 指明该会话TAF的方法(目前取固定值NULL)
FAILED_OVER VARCHAR(3) 指明会话是否在故障转移模式下运行,并且故障转移已经发生。(YES)或(NO)(取固定值"NO")
RESOURCE_CONSUMER_GROUP VARCHAR(32) 会话的当前资源用户组的名字(目前取固定值NULL)
PDML_STATUS VARCHAR(8) 若取值为ENABLED,则会话处于PARALLEL DML启用的模式。若取值为DISABLED,会话不支持PARALLEL DML启用模式。若取值为FORCED,会话已经被切换到了强制PARALLEL DML(目前取固定值NULL)
PDDL_STATUS VARCHAR(8) 若取值为ENABLED,会话处于PARALLEL DDL模式。若取值为DISABLED,会话不支持PARALLEL DDL。若取值为FORCED,则会话已经被转为强制PARALLEL DDL。(目前取固定值NULL)
PQ_STATUS VARCHAR(8) 如果ENABLED,则session正处于PARALLEL QUERY启用方式。如果DISABLED,则此session不支持PARALLEL QUERY启用方式。
CURRENT_QUEUE_DURATION NUMERIC(1000,38) 若在队列中,取值为会话在队列中的时间。若不在队列中,则取值为0。(目前取固定值NULL)
CLIENT_IDENTIFIER VARCHAR(64) 会话的客户端标识(目前取固定值NULL)
BLOCKING_SESSION_STATUS VARCHAR(11) 该列提供了是否有阻塞会话的细节: VALID -有阻塞会话,阻塞会话的标识在BLOCKING_INSTANCE字段和BLOCKING_SESSION字段 NO HOLDER -没有会话阻塞这个会话 NOT IN WAIT -这个会话没有在等待状态 UNKNOWN -阻塞会话未知
BLOCKING_INSTANCE NUMERIC(1000,38) 阻塞会话的实例标识。只有BLOCKING_SESSION_STATU的取值为VALID时,本列的取值才有效。(目前取固定值NULL)
BLOCKING_SESSION NUMERIC(1000,38) 阻塞会话的会话标识。只有BLOCKING_SESSION_STATU的取值为VALID时,本列的取值才有效。
FINAL_BLOCKING_SESSION_STATUS VARCHAR(11) 最终阻塞会话是等待链中的最后一个元素,等待链由本会话阻塞的其它会话以及被阻塞的会话再次阻塞的会话组成。对于成环的链,等待链中的某个被选为最后一个。 本列提供了是否有最终阻塞会话的细节: VALID -有最终阻塞会话,FINAL_BLOCKING_INSTANCE和FINAL_BLOCKING_SESSION用于区分最终阻塞会话 NO HOLDER -没有会话阻塞这个会话 NOT IN WAIT -这个会话没有在等待状态 UNKNOWN -最终阻塞会话未知
FINAL_BLOCKING_INSTANCE NUMERIC(1000,38) 最终阻塞会话的实例的标识,本列在FINAL_BLOCKING_SESSION_STATUS取值为VALAD时取值才是有效的(目前取固定值NULL)
FINAL_BLOCKING_SESSION NUMERIC(1000,38) 阻塞会话的会话标识。本列在FINAL_BLOCKING_SESSION_STATUS取值为VALAD时取值才是有效的
SEQ# NUMERIC(1000,38) 当前的或最后一次等待的唯一编号(每等待一次取值增加)
EVENT# NUMERIC(1000,38) 事件号
EVENT VARCHAR(64) 会话正在等待的资源或事件
P1TEXT VARCHAR(64) 等待事件的第1个参数的描述
P1 NUMERIC(1000,38) 第一个等待事件的参数(十进制)
P1RAW BINARY(8) 第一个等待事件的参数(十六进制)
P2TEXT VARCHAR(64) 等待事件的第2个参数的描述
P2 NUMERIC(1000,38) 第二个等待事件的参数(十进制)
P2RAW BINARY(8) 第二个等待事件的参数(十六进制)
P3TEXT VARCHAR(64) 等待事件的第3个参数的描述
P3 NUMERIC(1000,38) 第三个等待事件的参数(十进制)
P3RAW BINARY(8) 第三个等待事件的参数(十六进制)
P4TEXT VARCHAR(64) 等待事件的第4个参数的描述
P4 NUMERIC(1000,38) 第四个等待事件的参数(十进制)
P4RAW BINARY(8) 第四个等待事件的参数(十六进制)
WAIT_CLASS_ID NUMERIC(1000,38) 等待事件的类别标识
WAIT_CLASS# NUMERIC(1000,38) 等待事件的类别数
WAIT_CLASS VARCHAR(64) 等待事件的类别名
WAIT_TIME NUMERIC(1000,38) 若会话正在等待,则取值为0。若会话没在等待,则取值如下: > 0 -最后一次等待的持续时间,以百分之一秒为单位 -1 - 最后一次等待的持续时间少于百分之一秒 -2 -参数TIMED_STATISTICS被设为false了 为支持WAIT_TIME_MICRO和STATE列,该列被弃用了
SECONDS_IN_WAIT NUMERIC(1000,38) 若会话正在等待,则该值为当前等待的等待时间。
STATE VARCHAR(19) 等待状态: WAITING -会话正在等待 WAITED UNKNOWN TIME -最后一次等待的持续时间未知;这是参数TIMED_STATISTICS 被设为false后的取值 WAITED SHORT TIME -最后一次等待少于百分之一秒 WAITED KNOWN TIME -最后一次等待的持续时间是WAIT_TIME列中的时间
WAIT_TIME_MICRO NUMERIC 等待时间(以毫秒为单位)。若会话正在等待,则取值为当前等待花费的时间。
TIME_REMAINING_MICRO NUMERIC(1000,38) 取值的解释如下: > 0 -当前等待的剩余时间 (以毫秒计) 0 -当前等待超时 -1 -会话可以在当前等待中一直等下去 NULL -会话不在等待中(目前取固定值NULL)
TIME_SINCE_LAST_WAIT_MICRO NUMERIC(1000,38) 最后一次等待结束到现在的时间。若会话正在等待,则取值为0
SERVICE_NAME VARCHAR(128) 会话的服务名(目前取固定值NULL)
SQL_TRACE VARCHAR(8) 指明SQL跟踪启用(ENABLED)还是禁用(DISABLED)
SQL_TRACE_WAITS VARCHAR(5) 等待事件的跟踪是否打开
SQL_TRACE_BINDS VARCHAR(5) 指明绑定跟踪启用(TRUE)还是禁用(FALSE)(目前取固定值NULL)
SQL_TRACE_PLAN_STATS VARCHAR(10) 对每个游标的行资源统计信息以什么频率转存到跟踪文件中(目前取固定值NULL)
SESSION_EDITION_ID NUMERIC(1000,38) 在当前会话,在调用sys_context('USERENV', 'SESSION_EDITION_ID')时返回的值(目前取固定值NULL)
CREATOR_ADDR BINARY(8) 创建进程或回路的地址(目前取固定值NULL)
CREATOR_SERIAL# NUMERIC(1000,38) 创建进程或回路的序列号(目前取固定值NULL)
ECID VARCHAR(64) 运行上下文标识 (由应用服务器发送)(目前取固定值NULL)
BACKUP BOOLEAN 是否是备份线程对应的session
CURR_USER TEXT 当前用户名
AUTHENTICATION_TYPE TEXT 用户认证方式: NONE MD5 OS FINGERPRINT EXTERNAL CERTIFICATE SM3 SCRAM-SHA-256
DB_NAME TEXT 当前连接的逻辑数据库名
CONNECT_MODE TEXT 当前的连接模式
USER_IP TEXT 用户IP
USER_ADDRESS TEXT 用户的物理地址
MACHINE_GROUP TEXT 客户端操作系统所属的组(通过操作系统认证时有效)
COMMAND_PREV TEXT 上一个命令
CURRENT_SQL TEXT 当前正在执行的SQL语句
PREV_SQL TEXT 刚刚执行完的SQL语句
PREV_SQL_EXEC_TIME INT 上一条SQL语句的执行所用的时间
SQL_COUNT INT 已经执行的SQL语句总数
TOTAL_CURSORS INT 该会话当前打开的游标与prepare语句数量之和
CURRENT_XID INT 当前事务ID
XCOMMITS BIGINT 已经提交的事务数
XROLLBACKS BIGINT 已经回退的事务数
TOTAL_BYTES_SEND BIGINT 发送字节总数
TOTAL_BYTES_RECV BIGINT 接收字节总数
TOTAL_PACKET_SEND BIGINT 发送包总数
TOTAL_PACKET_RECV BIGINT 接收包总数
TOTAL_LOCK BIGINT 锁总数
CURRENT_LOCK BIGINT 当前锁
CURRENT_PHY_LOCK BIGINT 当前物理锁
TOTAL_MEMORY_SIZE BIGINT 内存总数
TOTAL_CHUNK_SIZE BIGINT 块总数
TOTAL_ELOGHEAP_SIZE BIGINT Elog堆总数
TOTAL_PRIVATEHEAP_SIZE BIGINT 私有堆总数
TOTAL_MVCC_RETRY BIGINT 读提交情况下连接进行重做的次数统计