关于Oracle中ASH功能的特别说明,oracle10个/11g的新特点

《Oracle大型数据库系统在AIXUNIX上的实战详解》集中讨论17, 还是继续大前天的话题――对Oracle性能数据的获得。

 

在Oracle10gR2以后版本中添加了经过完善的ASH功能。所谓ASH,就是自动的会话历史纪录,它纪录了每时每刻激活会话的活动信息,这些信息记录在SGA的一个循环使用的缓冲区中。任何用户的连接,只要该用户当前不处于闲置(idle类)状态,那么,该连接就会被记录。我们可以通过V$ACTIVE_SESSION_HISTORY 视图来查看这些会话的CPU使用方面的信息。

 

那么究竟V$ACTIVE_SESSION_HISTORY中记录了那些信息呢? 在该视图中,每个会话的历史纪录占若干行,每次取样占一行。由于这些信息被临时性循环存储在缓存中,这个缓存结构的大小是有限的,当系统处于繁忙状态时,这部分内存结构循环将使用的更快,因此,这导致缓存中记录的激活会话信息更少,从时间上看,则记载的时间更短,这取决于数据库活动程度。

 

不仅如此,会话历史纪录将定期存放到硬盘中,并作为自动工作量资料档案库(AWR)的一部分。由于该视图的内容可能很大,尤其在系统繁忙的状态下,因此可能仅有部分会话信息被保存。

 

由于ASH仅保存激活会话信息,因此被捕获的数据将简短但有用,避免大量的统计数据造成的视听的混淆。一般而言,如果查看较为当前的会话历史记录,可以通过V$ACTIVE_SESSION_HISTORY 视图获得。如果查看历史数据,则查看DBA_HIST_ACTIVE_SESS_HISTORY 视图。有了这些信息,我们就可以探寻到数据库“过去”的状态,包括下列常用的信息:

  • SQL语句的SQL标识符
  • 对象标号、文件标号、块标号
  • 等待事件和对应参数
  • 会话标识符和会话序列号
  • 模块名和动作名
  • 会话的客户标识符
  • 服务哈希标识符

 

未完,待续,

参见: http://www.usedb.cn/

你可能感兴趣的:(oracle,职场,休闲,ash,/11g)