数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

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


发布日期:2022年11月17日
 
Oracle10gR2 新视图:V$SESSION变化跟蹤

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

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

从OraclegR开始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中得到了

在OraclegROracle又为V$SESSION增加了额外几个字段

SERVICE_NAME

SQL_TRACE

SQL_TRACE_WAITS

SQL_TRACE_BINDS

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

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

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

SQL> desc v$session

NameNull?Type

SADDRRAW()

SIDNUMBER

SERIAL#NUMBER

AUDSID NUMBER

PADDRRAW()

USER#NUMBER

USERNAME VARCHAR()

COMMANDNUMBER

OWNERIDNUMBER

TADDRVARCHAR()

LOCKWAIT VARCHAR()

STATUS VARCHAR()

SERVER VARCHAR()

SCHEMA#NUMBER

SCHEMANAME VARCHAR()

OSUSER VARCHAR()

PROCESSVARCHAR()

MACHINEVARCHAR()

TERMINAL VARCHAR()

PROGRAMVARCHAR()

TYPE VARCHAR()

SQL_ADDRESSRAW()

SQL_HASH_VALUE NUMBER

SQL_ID VARCHAR()

SQL_CHILD_NUMBER NUMBER

PREV_SQL_ADDRRAW()

PREV_HASH_VALUENUMBER

PREV_SQL_IDVARCHAR()

PREV_CHILD_NUMBERNUMBER

MODULE VARCHAR()

MODULE_HASHNUMBER

ACTION VARCHAR()

ACTION_HASHNUMBER

CLIENT_INFOVARCHAR()

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 VARCHAR()

FAILOVER_TYPEVARCHAR()

FAILOVER_METHODVARCHAR()

FAILED_OVERVARCHAR()

RESOURCE_CONSUMER_GROUPVARCHAR()

PDML_STATUSVARCHAR()

PDDL_STATUSVARCHAR()

PQ_STATUSVARCHAR()

CURRENT_QUEUE_DURATION NUMBER

CLIENT_IDENTIFIERVARCHAR()

BLOCKING_SESSION_STATUSVARCHAR()

BLOCKING_INSTANCENUMBER

BLOCKING_SESSION NUMBER

SEQ# NUMBER

EVENT# NUMBER

EVENTVARCHAR()

PTEXT VARCHAR()

P NUMBER

PRAWRAW()

PTEXT VARCHAR()

P NUMBER

PRAWRAW()

PTEXT VARCHAR()

P NUMBER

PRAWRAW()

WAIT_CLASS_IDNUMBER

WAIT_CLASS#NUMBER

WAIT_CLASS VARCHAR()

WAIT_TIMENUMBER

SECONDS_IN_WAITNUMBER

STATEVARCHAR()

SERVICE_NAME VARCHAR()

SQL_TRACEVARCHAR()

SQL_TRACE_WAITSVARCHAR()

SQL_TRACE_BINDSVARCHAR()

SQL> desc v$session_wait

NameNull?Type

SIDNUMBER

SEQ# NUMBER

EVENTVARCHAR()

PTEXT VARCHAR()

P NUMBER

PRAWRAW()

PTEXT VARCHAR()

P NUMBER

PRAWRAW()

PTEXT VARCHAR()

P NUMBER

PRAWRAW()

WAIT_CLASS_IDNUMBER

WAIT_CLASS#NUMBER

WAIT_CLASS VARCHAR()

WAIT_TIMENUMBER

SECONDS_IN_WAITNUMBER

STATEVARCHAR()

SQL>

上一篇:oracle的事务与锁与回滚段block的一点研究

下一篇:查询Oracle数据库表空间信息的方法