oracle系统表v$session、v$sql字段说明
oracle系统表v$session、v$sql表的列字段说明
在本视图中,每一个连接到数据库实例中的 session都拥有一条记录。包括用户 session及后台进程如 DBWR, LGWR, arcchiver等等。
V$SESSION中的常用列
V$SESSION是基础信息视图,用于找寻用户 SID或 SADDR。不过,它也有一些列会动态的变化,可用于检查用户。如例:
SQL_HASH_VALUE, SQL_ADDRESS:这两列用于鉴别默认被 session执行的 SQL语句。如果为 null或 0,那就说明这个 session没有执行任何 SQL语句。 PREV_HASH_VALUE和 PREV_ADDRESS两列用来鉴别被 session执行的上一条语句。
注意:当使用 SQL*Plus进行选择时,确认你重定义的列宽不小于 11以便看到完整的数值。
STATUS:这列用来判断 session状态是:
l Achtive:正执行 SQL语句 (waiting for/using a resource)
l Inactive:等待操作 (即等待需要执行的 SQL语句 )
l Killed:被标注为删除
下列各列提供 session的信息,可被用于当一个或多个 combination未知时找到 session。
Session信息
l SID: SESSION标识,常用于连接其它列
l SERIAL#:如果某个 SID又被其它的 session使用的话则此数值自增加 (当一个 SESSION结束,另一个 SESSION开始并使用了同一个 SID)。
l AUDSID:审查 session ID唯一性,确认它通常也用于当寻找并行查询模式
l USERNAME:当前 session在 oracle中的用户名。
Client信息
数据库 session被一个运行在数据库服务器上或从中间服务器甚至桌面通过 SQL*Net连接到数据库的客户端进程启动,下列各列提供这个客户端的信息
l OSUSER:客户端操作系统用户名
l MACHINE:客户端执行的机器
l TERMINAL:客户端运行的终端
l PROCESS:客户端进程的 ID
l PROGRAM:客户端执行的客户端程序
要显示用户所连接 PC的 TERMINAL、 OSUSER,需在该 PC的 ORACLE.INI或 Windows中设置关键字 TERMINAL, USERNAME。
Application信息
调用 DBMS_APPLICATION_INFO包以设置一些信息区分用户。这将显示下列各列。
l CLIENT_INFO: DBMS_APPLICATION_INFO中设置
l ACTION: DBMS_APPLICATION_INFO中设置
l MODULE: DBMS_APPLICATION_INFO中设置
下列 V$SESSION列同样可能会被用到:
l ROW_WAIT_OBJ#
l ROW_WAIT_FILE#
l ROW_WAIT_BLOCK#
l ROW_WAIT_ROW#
V$SESSION中的连接列
Column View Joined Column(s)
SID V$SESSION_WAIT,,V$SESSTAT,,V$LOCK,V$SESSION_EVENT,V$OPEN_CURSOR SID
(SQL_HASH_VALUE, SQL_ADDRESS) V$SQLTEXT, V$SQLAREA, V$S