---
title: "生成 ASH 报告 - OceanBase 数据库 V4.3.0 | OceanBase 文档中心"
description: "生成 ASH 报告 您可以通过调用 ASH PL 包生成对应的 ASH 报告。 SQL 语法 ASH PL 包的信息有如下几个字段组成： MySQL 模式 Oracle 模式 obclient [oceanbase]&gt; call dbms_workload_repository.ash_report( &#x27;BTIME&#x27;…"
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.3.0

# 生成 ASH 报告

更新时间：2026-04-10 11:58:35

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.3.0/zh-CN/700.reference/1000.performance-tuning-guide/400.performance-diagnosis/500.ash-report-diagnosis/200.generate-ash-report.md)  

您可以通过调用 ASH PL 包生成对应的 ASH 报告。

## SQL 语法

ASH PL 包的信息有如下几个字段组成：

    MySQL 模式   Oracle 模式

```sql
obclient [oceanbase]> call dbms_workload_repository.ash_report(
  'BTIME',
  'ETIME',
  'sql id',
  'trace id',
  'wait class');

```

```sql
obclient [SYS]> call dbms_workload_repository.ash_report(
  BTIME => 'xxxx',
  ETIME => 'xxxx',  
  SQL_ID => 'xxxx',
  TRACE_ID => 'xxxx',
  WAIT_CLASS => 'xxxx',
  );

```

参数说明如下：

| **参数** | **说明** |
| --- | --- |
| BTIME | 采样开始时间。 |
| ETIME | 采样结束时间。 |
| SQL_ID | 待采样 SQL 的 `SQL_ID`，不填或填 `NULL` 则表示不限制 `SQL_ID`。 |
| TRACE_ID | 待采样 SQL 的 `TRACE_ID`，不填或填 `NULL` 则表示不限制 `TRACE_ID`。 |
| WAIT_CLASS | 待采样的事件类型。`WAIT_CLASS` 取值参考 `GV$ACTIVE_SESSION_HISTORY.WAIT_CLASS` 字段的取值，不填或填 `NULL` 则表示不限制等待类型。 |
| REPORT_TYPE | 报告类型，目前仅支持 `TEXT` 类型，可不填写。 |

该包中相关信息是通过查询 `GV$ACTIVE_SESSION_HISTORY` 视图获取。`GV$ACTIVE_SESSION_HISTORY` 视图提供了会话活动信息。任何一个连接到数据库且排队等待的会话都会被考虑是一个活动的会话，每个会话采样都是通过 `GV$ACTIVE_SESSION_HISTORY` 视图返回的一组行数据，在会话采样期间的每个会话会在视图中被显示。有关视图更多信息，请参见 [GV$ACTIVE_SESSION_HISTORY（MySQL 模式）](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000641580) 和 [GV$ACTIVE_SESSION_HISTORY（Oracle 模式）](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000640669)。

## 操作步骤

以 Oracle 模式为例，生成 ASH 报告的步骤如下。

1. 使用 `SYS` 用户登录到集群的 oracle 租户，进入 OceanBase 数据库。

   ```shell
   $ obclient -h172.30.xxx.xxx -Pxxxx -usys@oracle -pxxxx -A
   obclient [SYS]>

   ```
 2. 调用 `set serveroutput on;` 将输出内容打印出来。

   ```sql
   obclient [SYS]> set serveroutput on;

   ```
 3. 调用 ASH PL 包，输入需要诊断的开始时间和结束时间后生成报告内容。

      - 将报告信息直接在界面上显示。

       ```sql
       obclient [SYS]>call dbms_workload_repository.ash_report(
         --采样开始时间
         to_date('2023-02-22 19:26:47', 'yyyy-MM-dd HH24:mi:ss'),
         --采样结束时间
         to_date('2023-02-22 19:27:07', 'yyyy-MM-dd HH24:mi:ss'),
         -- 选取编号为 15B18561C66FCF844D00386749C0DA49 的 SQL 语句进行采样
         sql_id=>'15B18561C66FCF844D00386749C0DA49');
         -- TRACE_ID 和 WAIT_CLASS 的设置方式与 SQL_ID 类似，例如 trace_id = 'xxxxxx';
       Query OK, 0 rows affected (29.49 sec)

       ```

       #### 说明

            - BTIME 和 ETIME 字段的值必须要设置。
            - REPORT_TYPE 字段仅支持设置 text 类型。
            - SQL_ID 、TRACE_ID 和 WAIT_CLASS 字段的值根据是否需要来设置。
      - 将报告信息以 TXT 文件的形式显示。

            1. 生成脚本文件 report.sql。

              ```shell
              vim report.sql

              ```

              ```shell
              set serveroutput on;
              tee report.txt
              call dbms_workload_repository.ash_report(
                        ##采样开始时间
                        to_date('2022-01-01 11:11:11', 'yyyy-MM-dd HH24:mi:ss'),
                        ##采样结束时间
                        to_date('2022-11-10 12:18:36', 'yyyy-MM-dd HH24:mi:ss'),
                        ## 选取编号为 15B18561C66FCF844D00386749C0DA49 的 SQL 语句进行采样
                        sql_id=>'15B18561C66FCF844D00386749C0DA49');
                        ##TRACE_ID 和 WAIT_CLASS 的设置方式与 SQL_ID 类似，例如 trace_id = 'xxxxxx';
              notee

              ```
            2. 登录数据库，执行 start report.sql，结果会打印到 report.txt 文件中了。

              ```sql
              $ obclient -h172.30.xxx.xxx -P2881 -usys@oracle -pxxxx -A
              obclient [SYS]> source report.sql;

              ```

## 相关文档

- [ASH 简介](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000640561)。
 - [分析 ASH 报告](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000640562)。

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
