WEB开发网
开发学院数据库Oracle Oracle10g新特性——等待接口 阅读

Oracle10g新特性——等待接口

 2008-08-30 12:44:37 来源:WEB开发网   
核心提示: 另外一个需要注意的重要信息就是字段WAIT_TIME的值是-2,一些平台,Oracle10g新特性——等待接口(3),如Windows,不支持快速计时机制,如何做呢?在9i和以下版本中,你可能需要写一个复杂的查询来获取到持有锁的会话的SID,如果在哪些平台上,初始化参数TIMED_STAT

另外一个需要注意的重要信息就是字段WAIT_TIME的值是-2。一些平台,如Windows,不支持快速计时机制。如果在哪些平台上,初始化参数TIMED_STATISTICS没有设置为on,就无法检测到精确的计时统计。在那样的情况下,在Oracle9i中,这个字段的值是一个非常大的值,它会让以后的问题定位产生混乱。在10g中,值-2就表示是这种情况——平台不支持快速计时机制并且TIME_STATISTICS被设置为off。 

会话也会显示等待信息

还记得前面说需要将视图V$SESSION_WAIT和V$SESSION连接查询来获取关于会话的细节信息吗?在10g中,这将成为历史。10g中的视图V$SESSION也会显示和V$SESSION_WAIT一样的等待事件信息。以下便是V$SESSION用于显示会话当前所等待的等待事件而新增的字段。

EVENT# NUMBER
EVENT VARCHAR2(64)
P1TEXT VARCHAR2(64)
P1 NUMBER
P1RAW RAW(4)
P2TEXT VARCHAR2(64)
P2 NUMBER
P2RAW RAW(4)
P3TEXT VARCHAR2(64)
P3 NUMBER
P3RAW RAW(4)
WAIT_CLASS_ID NUMBER
WAIT_CLASS# NUMBER
WAIT_CLASS VARCHAR2(64)
WAIT_TIME NUMBER
SECONDS_IN_WAIT NUMBER
STATE VARCHAR2(19)

这些字段和V$SESSION_WAIT中的是一样的,并且显示的信息也相同。这样就无需再查询V$SESSION_WAIT视图了,要获取到会话的等待信息就只需要查询一个视图就行了。

让我们看看前面这个例子:SID为269的会话正在等待事件enq: TX ?C row lock contention。这表示它正在等待另外一个会话持有的锁。要诊断这个问题,你就必须定位到另外一个会话。如何做呢?

在9i和以下版本中,你可能需要写一个复杂的查询来获取到持有锁的会话的SID。在10g中,你就只需要执行以下查询就可以了:

上一页  1 2 3 4 5  下一页

Tags:Oracleg 特性 等待

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接