Oracle10gR2 新视图:V$SESSION变化跟踪

王朝oracle·作者佚名  2008-05-31
宽屏版  字体: |||超大  

从Oracle10g开始,伴随ASH功能的引入,Oracle对V$SESSION视图进行了彻底改造。

关于V$SESSION在几个版本中结构变化可以参考:Oracle数据字典说明

从Oracle10gR1开始,Oracle在V$SESSION中增加关于等待事件的字段,实际上也就是把原来V$SESSION_WAIT视图中的所有字段全部整合到了V$SESSION视图中,开始的时候我还以为ASH是依靠联合查询来获取信息的,仔细一看才发现现在V$SESSION已经发生了变化。(假如进一步研究你会发现,实际上V$SESSION的底层查询语句及X$表已经有了变化)

这一变化使得我们的查询得以简化,但是也使得V$SESSION_WAIT开始变得多余。

此外V$SESSION中还增加了BLOCKING_SESSION等字段,以前我们需要通过dba_waiters等视图才能获得的信息,现在也可以直接从V$SESSION中得到了。

在Oracle10gR2中,Oracle又为V$SESSION增加了额外几个字段:

SERVICE_NAME

SQL_TRACE

SQL_TRACE_WAITS

SQL_TRACE_BINDS

这几个字段又显示当前session连接方式及是否启用sql_trace等

我们看到Oracle在小处动的手脚是非常多的,而无疑这些小手脚会给我们的治理维护带来极大的方便。

以下是Oracle10gR2种v$session和v$session_wait两个view的结构供参考:

SQL desc v$session

NameNull?Type

----------------------------------------- -------- ----------------------------

SADDRRAW(4)

SIDNUMBER

SERIAL#NUMBER

AUDSID NUMBER

PADDRRAW(4)

USER#NUMBER

USERNAME VARCHAR2(30)

COMMANDNUMBER

OWNERIDNUMBER

TADDRVARCHAR2(8)

LOCKWAIT VARCHAR2(8)

STATUS VARCHAR2(8)

SERVER VARCHAR2(9)

SCHEMA#NUMBER

SCHEMANAME VARCHAR2(30)

OSUSER VARCHAR2(30)

PROCESSVARCHAR2(12)

MACHINEVARCHAR2(64)

TERMINAL VARCHAR2(30)

PROGRAMVARCHAR2(48)

TYPE VARCHAR2(10)

SQL_ADDRESSRAW(4)

SQL_HASH_VALUE NUMBER

SQL_ID VARCHAR2(13)

SQL_CHILD_NUMBER NUMBER

PREV_SQL_ADDRRAW(4)

PREV_HASH_VALUENUMBER

PREV_SQL_IDVARCHAR2(13)

PREV_CHILD_NUMBERNUMBER

MODULE VARCHAR2(48)

MODULE_HASHNUMBER

ACTION VARCHAR2(32)

ACTION_HASHNUMBER

CLIENT_INFOVARCHAR2(64)

FIXED_TABLE_SEQUENCE NUMBER

ROW_WAIT_OBJ#NUMBER

ROW_WAIT_FILE# NUMBER

ROW_WAIT_BLOCK#NUMBER

ROW_WAIT_ROW#NUMBER

LOGON_TIME DATE

LAST_CALL_ET NUMBER

PDML_ENABLED VARCHAR2(3)

FAILOVER_TYPEVARCHAR2(13)

FAILOVER_METHODVARCHAR2(10)

FAILED_OVERVARCHAR2(3)

RESOURCE_CONSUMER_GROUPVARCHAR2(32)

PDML_STATUSVARCHAR2(8)

PDDL_STATUSVARCHAR2(8)

PQ_STATUSVARCHAR2(8)

CURRENT_QUEUE_DURATION NUMBER

CLIENT_IDENTIFIERVARCHAR2(64)

BLOCKING_SESSION_STATUSVARCHAR2(11)

BLOCKING_INSTANCENUMBER

BLOCKING_SESSION NUMBER

SEQ# NUMBER

EVENT# NUMBER

EVENTVARCHAR2(64)

P1TEXT VARCHAR2(64)

P1 NUMBER

P1RAWRAW(4)

P2TEXT VARCHAR2(64)

P2 NUMBER

P2RAWRAW(4)

P3TEXT VARCHAR2(64)

P3 NUMBER

P3RAWRAW(4)

WAIT_CLASS_IDNUMBER

WAIT_CLASS#NUMBER

WAIT_CLASS VARCHAR2(64)

WAIT_TIMENUMBER

SECONDS_IN_WAITNUMBER

STATEVARCHAR2(19)

SERVICE_NAME VARCHAR2(64)

SQL_TRACEVARCHAR2(8)

SQL_TRACE_WAITSVARCHAR2(5)

SQL_TRACE_BINDSVARCHAR2(5)

SQL desc v$session_wait

NameNull?

Type

----------------------------------------- -------- ----------------------------

SIDNUMBER

SEQ# NUMBER

EVENTVARCHAR2(64)

P1TEXT VARCHAR2(64)

P1 NUMBER

P1RAWRAW(4)

P2TEXT VARCHAR2(64)

P2 NUMBER

P2RAWRAW(4)

P3TEXT VARCHAR2(64)

P3 NUMBER

P3RAWRAW(4)

WAIT_CLASS_IDNUMBER

WAIT_CLASS#NUMBER

WAIT_CLASS VARCHAR2(64)

WAIT_TIMENUMBER

SECONDS_IN_WAITNUMBER

STATEVARCHAR2(19)

SQL

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有