WEB开发网
开发学院数据库Oracle Oracle10g新特性——工作量自动收集 阅读

Oracle10g新特性——工作量自动收集

 2008-08-30 12:44:31 来源:WEB开发网   
核心提示: 这个视图显示的整个系统的时间模型,但是你可能对更细粒度上的视图感兴趣:会话级的时间模型,Oracle10g新特性——工作量自动收集(6),视图V$SESS_TIME_MODEL能显示在会话级捕捉到的时间统计数据,这些数据统计的是当前的会话,如果这些会话等待的事件中有一个是buffer bu

这个视图显示的整个系统的时间模型。但是你可能对更细粒度上的视图感兴趣:会话级的时间模型。视图V$SESS_TIME_MODEL能显示在会话级捕捉到的时间统计数据。这些数据统计的是当前的会话,包括所有的活动的和不活动的都可见。多出的字段SID表明了所统计的会话的SID。

在Oracle的以前版本,这些数据根本无法获取到,需要用户从各种其他数据中猜测出来。在Oracle 10g中,获取这些数据简直是小菜一碟。

活动会话历史

视图V$SESSION在oracle 10G中被增强了,其中最有价值的一项增强就是包括了等待时间和他们持续的时间,而不需要通过V$SESSION_WAIT来查看了。然而,因为这个视图很少反映出真实的时间值,所以一些重要信息就丢失了。例如,如果你从这个视图中查询看是否存在某个会话在等待某个非空闲的事件,而如果这个事件的数据存在问题,你将无法找到你想要的东西,因为等待事件必须依赖于你所查询到的时间数据。Oracle 10G的另一个特性活动会话历史(Active Session History ASH)和AWR类似,将会话的性能统计数据存储在一个缓存中以便于将来的分析。但是,和AWR不一样的是,这些数据的存储并非永久的存储在表当中,而是存在内存当中,可以通过视图V$ACTIVE_SESSION_HISTORY来查到。这些数据每秒中被收集一次,并且只有哪些活动的会话才会被收集。随着时间的推进,老的数据被移出、新的数据被收集到内存,如此循环。为了找到有多少会话在等待某些事件,可以使用以下脚本:

select session_id||','||session_serial# SID, n.name, wait_time,
time_waited
from v$active_session_history a, v$event_name n
where n.event# = a.event#

这条语句的执行结果可以显示出事件的名称和花费了多少事件等待。增加ASH的字段可以帮你对某个特定的等待事件进行深入定位。例如,如果这些会话等待的事件中有一个是buffer busy wait,那就必须再做适当的诊断来定位是在哪个段上发生了等待事件。你可以通过将ASH视图中的CURRENT_OBJ#字段与DBA_OBJECTS连接查询来查到发生问题的段。

上一页  1 2 3 4 5 6 7  下一页

Tags:Oracleg 特性 工作量

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