如何使用ASH报告以及为什么

活动会话历史,(灰) 报告是调查绩效问题时我最喜欢的。 Â我认为面临许多管理员的最大挑战是知道何时转向ASH报告以及如何使用该报告诊断问题。

今天 ’由于工作负载重播,因此应该是一个简单的工作负载重播,而且,逐步逐步,为什么要使用ASH报告的工作负载重播。

最佳活动

在我们的EM12C环境中,我们注意到数据库中的一些高活动并使用 最佳活动 to view what’s going on:

 0209_01

作为DBA,我’我不是粉红色,红色,棕色或更差的粉丝,黑色,在我的最佳活动中。 ÂI’m从下午3点之前显示来自顶级SQL和Top Sessions的信息,我们可以看到“Other”等待事件显示在我们的顶级SQL中最为影响。

SQL详细信息

然后,我们可以双击突出显示的顶级SQL会话以更好地挖掘该唯一的SQL_ID。

 0209_02

注意到这是一个插入语句,然后我可以扫描更低扫描以查看有关SQL语句的更详细信息,等待和涉及的会话:

 0209_03

顶级等待是缓冲区灭绝,这个等待活动可能对每个人都不熟悉,但我们’重新通过此帖子进行工作以调查ASH报告提供的信息以体验此等待事件在数据库中的影响类型。

报告期权

你’LL请注意,SQL详细信息页面为您提供了两个报告,即您可以运行-Â-ar-a awr sql报告和灰分报告。 Â这些报告都可以在$ ORACLE_HOME / RDBMS / ADMIND目录中找到。

AWR SQL_ID特定报告名称为AWRSQRPT.SQL,ASH报告名为ASHRPT.SQL,如果您’遗留有兴趣通过SQLPLUS从命令行运行它们而不是使用EM12C。

我们将选择使用ASH报告而不是SQL_ID特定的AWR报告或完整的AWR报告,因为有几个原因:

  1. 我们只对此特定的SQL_ID感兴趣,因此完整的AWR报告将是矫枉过正的。
  2. 特定的AWR SQL_ID报告’T包括会话,被阻止的会话和其他待办事项信息我们感兴趣。
  3. 我们aren.’对执行计划感兴趣,SQL_ID特定的AWR报告包括。
  4. ASH报告允许我们使用样本并按时向快照进行钻取,当我们检查特定的交易时,它在派上派上使用。我们aren’关注的是执行的执行数量,它在AWR中提供,但不是用灰烬的样本。

运行ASH报告

单击按钮后运行ASH报告非常简单。 Â不仅是预先填写的时间 -

 0209_04

我们还拥有SQL_ID过滤器,为我们提供有关此SQL_ID的更准确的信息。 Â如果您可以更改开头和结束时间的窗口’d想延长它,但知道灰烬对于较小的时间快照更有效。

一旦对报告的标准感到满意,请单击“运行报告”,ASH报告的HTML版本将以短顺序显示。

通过云控件的实际报告

首先要记住的是,如果您处于RAC环境,则通过数据库节点生成报告。左手目标导航将向您展示报告已源于以下内容的目标节点:

 0209_05

 

该报告从报表运行的环境中的基本信息开始:

 0209_06

 

我们跳转到的第一部分,我们几乎总是跳转到,是最重要的等待事件:

 0209_07

我发现很难花费很多时间超过10%的东西,(至少它是一个非常好的拇指遵循…)但正如您所看到的,我们显示超过86%的事件等待缓冲区消灭。

如果我们走到第二节,我们最常去最常见的话,我们的顶级SQL,我们’LL查看此问题的更多验证:

 0209_09

 

对于SQL_IDÂ67SJXRGV720P4,我们可以看到超过86%的人在等待活动上花了 缓冲区消灭 .

 0209_11

 

我们还可以查看此SQL_ID涉及的会话,如果有任何已阻止的会话,则在其自己的部分中列出。在这里没有被封锁的会话,所以我们可以进入更重要的研究。

对象最受影响的是此语句的等待也显示出来,如果这是其他内部存储的代码的存储过程的一部分,那么它将再次显示,其中’s own section.

 0209_12

 

在报告的底部,我们看到在我们选择检查灰样品时连续发生的最高等待:

 0209_13

 

如您所见,样品均为约1分钟,每分钟近似五分钟检查灰色采样时间。 Â我们可以在下午时间看,(就像顶级活动中显示的那样)缓冲区的影响灭绝等待,然后等待CPU和群集GC等待帖子“hit”.

缓冲区消灭等待

那么是什么 缓冲区消灭?很多人喜欢把这个称为“SGA Thrashing” - Â听起来很可爱,不’它?等待事件发生在数据库使用时 自动内存管理,(AMM) 并且MMON背景进程决定缩小缓冲区缓存并在从内存顾问的建议之后将内存重新分配给SGA的其他区域。很多dbas haven’T尚未销售在AMM上,我必须承认,我’其中之一。我只在小型非重要数据库中使用它,并且经常避免为任何OLTP环境设置它。一件事要记住,我’More More Mound More More More More More Mode VS.与DB12C中的内存分配问题一起工作,所以我不’T有DB12C和多租户的经验,并通过新版本进行受过良好的审查。ðÿ™,

上述ASH报告应该足以让您知道此数据库受到当前AMM设置的影响,如果您需要提供更多信息,则可以以两种方式执行此操作:

  1. 查看EM12C中的内存顾问。
  2. 查询V $ SGA_RESIZE_OPS和V $ MEMORY_RESIZE_OPS直接查看调整大小发生的频率。

这里’s一个简单的查询开始:

SELECT parameter, initial_size, target_size, start_time
FROM v$memory_resize_ops 
WHERE initial_size > = 0 
and final_size > = 0 
ORDER BY parameter, start_time;

另一种选择是将db_cache_advice设置为关闭,然后直接设置db_cache_size。

这总结了一个例子以及你如何使用ASH报告来调查Oracle的问题。祝你有美好的一天,一如既往地,尽一切竭诚为防弹!

 

 

 

 

 

 

dbakevlar.

http://about.me/dbakevlar

One thought on “如何使用ASH报告以及为什么

评论被关闭。