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

Oracle10g新特性——等待接口

 2008-08-30 12:44:37 来源:WEB开发网   
核心提示: SQL> select wait_class#, wait_class_id,2 average_waiter_count "awc", dbtime_in_wait,3 time_waited, wait_count4 from v$waitclassmetri

SQL> select wait_class#, wait_class_id,
2 average_waiter_count "awc", dbtime_in_wait,
3 time_waited, wait_count
4 from v$waitclassmetric
5 /
WAIT_CLASS# WAIT_CLASS_ID AWC DBTIME_IN_WAIT TIME_WAITED WAIT_COUNT
----------- ------------- ---- -------------- ----------- ----------
0 1893977003 0 0 0 1
1 4217450380 2 90 1499 5
2 3290255840 0 0 4 3
3 4166625743 0 0 0 0
4 3875070507 0 0 0 1
5 3386400367 0 0 0 0
6 2723168908 59 0 351541 264
7 2000153315 0 0 0 25
8 1740759767 0 0 0 0
9 4108307767 0 0 8 100
10 2396326234 0 0 0 0
11 3871361733 0 0 0 0

请注意字段WAIT_CLASS_ID和他的统计数据。对于值4217450380,我们发现有2个会话在等待这一类型的事件共5次、1499厘秒。但是这一类型等待是什么等待事件呢?你可以从视图V$SYSTEM_WAIT_CLASS中得到这个信息。如上所示,这是Application类型事件。

再注意DBTIME_IN_WAIT这一非常有用的字段。你也许还记得在10g的AWR中会在很细的粒度下记录下数据库的消耗时间。DBTIME_IN_WAIT就表示数据库消耗的等待时间。

当用户的问题解决后,你可能还要继续跟踪有什么其他不同的等待事件导致了他的问题。当然,你可以很轻松的通过查询V$SESSION_WAIT视图来获取答案。但是很不幸,这些等待事件都已经不存在了。因此也就没有它们的记录了。这时要如何做?

在10g中,视图V$SESSION_WAIT_HISTORY会自动记录下活动会话等待的最近10次的等待事件历史信息。要查找这些事件,只要执行以下语句:

SQL> select event, wait_time, wait_count
2 from v$session_wait_history
3 where sid = 265
4 /
EVENT WAIT_TIME WAIT_COUNT
------------------------------ ---------- ----------
log file switch completion 2 1
log file switch completion 1 1
log file switch completion 0 1
SQL*Net message from client 49852 1
SQL*Net message to client 0 1
enq: TX - row lock contention 28 1
SQL*Net message from client 131 1
SQL*Net message to client 0 1
log file sync 2 1
log buffer space 1 1

当会话停止或连接断开后,视图中的这些记录就没有了。然而,这些等待的历史信息会被维护在AWR表中以便以后的分析。查询这些会话等待的AWR视图是V$ACTIVE_SESSION_HISTORY。

总结

由于10g的这些增强特性,分析性能问题变得十分简单。关于会话等待的历史信息帮助你诊断会话结束以后发生的问题。对等待的分类可以帮助你理解每个等待的重要性。

上一页  1 2 3 4 5 

Tags:Oracleg 特性 等待

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