DBA学习之路

敬畏数据,谨慎对待每一个问题

导航

ASH日志报告详解

Posted on 2024-05-12 18:25  dclogs  阅读(42)  评论(0编辑  收藏  举报

本文转自:https://blog.csdn.net/cuiyan1982/article/details/77814534

1.ASH日志报告详解

1.1 ASH报告

使用ash报告,在生成ash报告之后,可以重新检索哪些标识为短暂性能问题的信息。

ash报告的内容分成了以下几个部分:

  • top events
  • load profile
  • top sql
  • top pl/sql
  • top java
  • top sessions
  • to objects/files/latches
  • activity over time

ORACLE 11G 性能诊断优化之ASH实战分析详解_sql语句

1.2 Top Evnets

顶级等待事件部分描述了被抽样会话活动中由用户,后台等产生的顶级等待事件,使用这些信息可以识别是哪些等待事件造成了短暂的性能问题。顶级等待事件包含以下部分:

(1)Top User Events顶级用户事件

这部分信息显示了在抽样会话活动中占很高百分比的用户进程等待事件。

(2)Top Background Events顶级后台事件

这部分信息显示了在抽样会话活动中占很高百分比的后台进程等待事件。

(3)Top Event P1/P2/P3 Values顶级等待事件参数P1/P2/P3

这部分信息显示了在抽样会话活动中占很高百分比的等待事件的参数值它通过总的等待时间(%Event)百分比进行排序后被显示。对于每一个等待事件p1,p2,p3的值与等待事件参数parameter 1,parameter 2,parameter 3这三个列相关联.

案例如下图所示:

ORACLE 11G 性能诊断优化之ASH实战分析详解_数据_02

1.3 Load Profile

load profile部分描述了在抽样的会话活动中的负载分析。使用这部分信息可以识别造成短暂性能问题的服务、客户或sql命令类型。负载概要部分包含以下部分信息:

(1)top service/module

这部分信息显示了在抽样会话活动中占很高百分比的服务和模块信息

(2)top client ids

这部分信息显示了在抽样会话活动中占很高百分比的客户端的id信息,它是数据库会话中应用程序的特定标识符

(3)top sql command types

这部分信息显示了在抽样会话活动中占很高百分比的sql命令类型,比如select或update

(4)top phases of execution

这部分信息显示了在抽样会话活动中占很高百分比的执行步骤,比如sql,pl/sql和java的编译和执行操作

案例如下图所示:

 ORACLE 11G 性能诊断优化之ASH实战分析详解_等待事件_03

1.4 Top Sql

顶级sql部分描述了抽样会话活动中的顶级sql语句,使用这部分信息可以识别出造成短暂性能问题的高负载sql语句

顶级sql部分包含以下信息:

  • top sql with top events
  • top sql with top row sources
  • top sql using literals
  • top parsing module/action
  • complete list of sql text

(1)top sql with top events

这部分信息显示了在抽样会话活动中占总的等待事件很高百分比的sql语句.

(2)top sql with top row sources

这部分信息显示了在抽样会话活动中占很高百分比的sql语句和它们的详细执行计划信息。通过这部分信息可以识别出哪部分的sql执行消耗了大量的sql执行时间

(3)top sql using literals

这部分信息显示了在抽样会话活动中占很高百分比的使用literal值的sql语句。可以重新检查这部分sql语句看是否能使用绑定变量来代替literal值.

(4)top parsing module/action

这部分信息显示了在抽样会话活动中当执行解析sql语句时占很高百分比的模块和操作

(5)complete list of sql text

这部分信息显示了顶级sql语句的完整的文本内容

(6)top pl/sql

这部分信息显示了在抽样会话活动中占很高百分比的pl/sql过程.

(7)top java

这部分信息显示了在抽样会话活动中占很高百分比的java程序

1.5 top sessions

这部分信息描述了会话正在等待的一个特定等待事件。使用这部分信息来识别在抽样会话活动中占很高百分比的会话,它们可能是造成短暂性能问题的原因。

top sessions部分包含以下信息:

(1)top sessions

这部分信息显示了在抽样会话活动中占很高百分比的等待会话

(2)top blocking sessions

这部分信息显示了在抽样会话活动中占很高百分比的阻塞会话

(3)top sessions running pqs

这部分信息显示了哪些在抽样会话活动中占很高百分比的正处于等待的并行查询

1.6 top objects/files/latches

这部分信息显示了通常最消耗数据库资源的信息括以下部分:

(1)top db objects

这部分信息显示了在抽样会话活动中占所有引用对象很高百分比的数据库对象(比如表和索引)

(2)top db files

这部分信息显示了在抽样会话活动中占访问量很高百分比的数据库文件

(3)top latches

这部分信息显示了在抽样会话活动中占很高百分比的闩锁信息。

闩锁是一种简单低级别串行化机制用来保护sga中的共享数据结构。比如闩锁保护当前访问数据库和缓冲区缓存中数据块结构的用户列表。当维护或查找这些结构时服务器或后台进程请求持有闩锁的时间是非常短暂的。闩锁的实现依赖于操作系统特别是一个进程等待获取一个闩锁多长时间.

(4)Activity over time

这一部分是ash报告信息最丰富的一部分。这部分信息对于长时间周期的ash报告来说因为在分析期间它提供了关于活动和工作负载概要深层次的详细信息。activity over time会被分成10个时段。每个时段的大小基于分析所持续的时间。第一个和最后一个时段是奇怪。所有内部时段是相等的大小它们可以相互比较。例如,如果分析时间持续10分钟,那么所有的时段将会是每个一分钟,然后如果分析时间持续9分30秒,那么外部的时段可能是每个15秒内部的时段可能每个1分钟

特定时段中每个时段包含的信息如下:

列                       描述

slot time(持续时间)      时段的持续时间

solt count               在时段中抽样会话的数量

event                    在时段中顶级的三个等待事件

event count              ash抽样等待的等待事件的数量

%event                   ash抽样等待的等待事件在整个分析期间所占的百分比

当比较内部时段时,通过识别异常的event count和slot count列执行一个倾斜分析。event count列的异常指示了在抽样会话中等待的等待事件数量增加了,slot count列的异常指示活动的会话数增加了,因为ash数据只从活动会话中进持抽样,说明数据库的

负载增加了。通常来说当活动会话抽样的数理和与这些会话相关的等待事件增加时,那么这个时段可能会造成短暂性能问题,如下所示:

ORACLE 11G 性能诊断优化之ASH实战分析详解_sql语句_04