使用 MONREPORT 模块生成的报告

MONREPORT 模块将生成监视数据的文本报告,然后可以使用这些报告对 SQL 性能问题进行故障诊断。

可以使用 MONREPORT 模块生成下列报告:

表 1. 使用 MONREPORT 模块生成的报告列表
报告名称 用来创建报告的过程 主要数据源/表函数
摘要报告 MONREPORT.DBSUMMARY MON_GET_SERVICE_SUBCLASS 以及从 MON_GET_CONNECTION 和 MON_GET_WORKLOAD 中选择的详细信息
连接报告 MONREPORT.CONNECTION MON_GET_CONNECTION
当前应用程序报告 MONREPORT.CURRENTAPPS 包括 MON_GET_CONNECTION、MON_GET_UNIT_OF_WORK、 WLM_GET_SERVICE_CLASS_AGENTS 和 WLM_GET_WORKLOAD_OCCURRENCE_ACTIVITIES 中的字段
当前 SQL 报告 MONREPORT.CURRENTSQL MON_GET_PKG_CACHE_STMT (对于从 WLM_GET_WORKLOAD_OCCURRENCE_ACTIVITIES 表函数获取的 executable_id 。)
程序包高速缓存报告 MONREPORT.PKGCACHE MON_GET_PKG_CACHE_STMT
当前锁定等待报告 MONREPORT.LOCKWAIT MON_GET_APPL_LOCKWAIT 中的大部分数据; MON_GET_CONNECTION、WLM_GET_SERVICE_CLASS_AGENTS、 WLM_GET_WORKLOAD_OCCURRENCE_ACTIVITIES、 MON_GET_PKG_CACHE_STMT 和 MON_GET_TABLE 中的其他数据

大多数报告都是从摘要部分开始,摘要部分为此报告中的每一项都提供了一行重要信息。 例如,“连接”报告的摘要部分为每个连接都提供了一行信息。 对于摘要中的每一项,在报告的主体中都提供了一个详细部分。

报告中的每个指标都标有底层监视元素的名称(例如:CLIENT_IDLE_WAIT_TIME = 44)。 要确定该指标所表示的内容,请在信息中心中搜索该监视元素的名称。

初始诊断报告

这些报告的一个重要用途是对 SQL 性能下降问题进行故障诊断。 每个报告旨在回答某些诊断问题。 某些报告支持进行初始诊断,而其他报告则支持稍后对特定类型的问题进行详细诊断。

初始诊断涉及到下列事项:
  • 要确定问题所属的类别,可将问题的范围缩小到出现速度下降的处理所属的方面或阶段。
  • 确定该问题所涉及到的 SQL 语句,并收集有关这些 SQL 语句的信息以便进一步分析。
表 2. 适合于初始诊断的 MONREPORT 模块报告
过程名称 所提供的信息及其用途

MONREPORT.DBSUMMARY

第 1 部分:系统性能

在“摘要”报告的第 1 部分,提供了整个数据库中聚集的处理的大多数方面的监视数据。

要回答有关出现速度下降的处理所属方面或阶段的问题,此信息将很有用。 例如:
  • 是在数据服务器内部还是外部发生了此问题?
  • 计算资源是否遇到了瓶颈?
  • 请求是否处于等待状态? 如果处于等待状态,那么是在等待哪个资源?
  • 是特定数据服务器处理组件的速度下降吗?

MONREPORT.DBSUMMARY

第 2 部分:应用程序性能

“摘要”报告的第 2 部分提供了每个连接、工作负载和服务类的关键性能指标。

要回答有关涉及到速度下降问题的应用程序请求的作用域的问题,此信息将很有用。 例如:
  • 此速度下降是会影响很多工作负载或者所有工作负载的常规系统速度下降吗?
  • 此速度下降问题是否仅限于从特定源(例如,特定连接、数据库工作负载或者数据库服务类)发出的 SQL 语句?

MONREPORT.DBSUMMARY

第 3 部分:成员级别的信息

“摘要”报告的第 3 部分提供了每个成员的关键性能指标。

要确定速度下降问题是否与某个成员或者某些成员无关,此信息很有用。

MONREPORT.CURRENTSQL

当前 SQL 报告采用前 N 个活动的多个列表的形式,提供了有关当前正在运行的语句的信息。 这些语句按不同的度量进行排名: 处理资源,处理的行数,直接读取数和直接写入数。

要确定速度下降问题是否与某个 SQL 语句或者某些 SQL 语句无关,此信息很有用。 如果速度下降问题与某个 SQL 语句或者某些 SQL 语句无关,那么这些语句可能是出现在此报告中最前面的语句。

MONREPORT.PKGCACHE
程序包高速缓存报告提供了有关最近已经运行并且存储在程序包高速缓存中的语句的信息。 此报告显示了多个摘要,每个摘要列示了前 N 个活动。 这些活动是按下列监视元素排序的:

此报告包含其中每个指标的摘要以及关于每次执行的报告。

要确定速度下降问题是否与某个 SQL 语句或者某些 SQL 语句无关,此信息很有用。 如果无关,那么这些语句可能会显示在此报告顶部。 关于每次执行的信息可以帮助确定成本最高的语句,而针对所有执行汇总的信息可帮助确定对系统造成的影响最大的语句,此处所说的影响是从语句成本和执行频率两方面综合考虑的。

MONREPORT.CURRENTAPPS

当前应用程序报告显示工作单元、代理程序和活动的当前处理状态。 此报告以一个显示了当前连接数和活动数的摘要部分开头,接下来还有一系列摘要,例如,按工作负载状态列示的当前工作单元的摘要。 在此报告的主体中,每个连接都有相应的一个部分,此部分提供了有关该连接的详细信息。

此信息对于查看当前正在系统中运行的所有工作很有用。 这使您可以检查可确定问题类别的模式。

详细诊断报告

完成初始诊断之后,可能需要对您在初始诊断阶段所确定的问题类别进行一系列专门或详细的故障诊断分析。

表 3. 适合于详细诊断的 MONREPORT 模块报告
过程名称 所提供的信息及其用途
MONREPORT.CONNECTION

如果 MONREPORT.DBSUMMARY 报告指出了速度下降问题仅限于从特定连接发出的 SQL 语句,那么您可以查看有关受影响的连接的详细信息。

此报告与 MONREPORT.DBSUMMARY 报告的第 1 部分包含相同的指标,但是此报告为每个连接都提供了此信息。

MONREPORT.LOCKWAIT

如果在初始诊断期间查看的报告指出有一个锁定等待问题,那么您可以查看有关当前正在等待的每个锁定等待的详细信息。

此信息包括锁定持有者和锁定请求者的详细信息,还包括持有的锁定和请求的锁定的特征。