---
title: "收集SQL性能问题信息 - 敏捷诊断工具 V3.6.0 | OceanBase 文档中心"
description: "收集SQL性能问题信息 本文适用于独立部署 obdiag 的场景，可以一键执行将SQL性能问题排查所需要的排查信息统一捞回，解决分布式节点信息捞取难的痛点。 使用说明 obdiag gather scene run --scene=observer.perf_sql [options] 选项说明如下： 选项名 是否必…"
---
切换语言

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

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*5ZXST55u540AAAAAAAAAAAAADiGDAQ/original) 敏捷诊断工具V 3.6.0

# 收集SQL性能问题信息

更新时间：2025-08-18 10:31:29

[编辑](https://github.com/oceanbase/odt-doc/edit/V3.6.0/zh-CN/400.gather/200.scenes/222.observer.perf_sql.md)  

本文适用于独立部署 obdiag 的场景，可以一键执行将SQL性能问题排查所需要的排查信息统一捞回，解决分布式节点信息捞取难的痛点。

## 使用说明

```shell
obdiag gather scene run --scene=observer.perf_sql [options]

```

选项说明如下：

| 选项名 | 是否必选 | 数据类型 | 默认值 | 说明 |
| --- | --- | --- | --- | --- |
| --scene | 是 | string | 默认为空 | 场景名，可以通过obdiag gather scene list 查看当前版本支持哪些场景 |
| --env | 是 | string | 默认为空 | 该场景需要额外的参数才能支持，可统一通过 `--env` 配置。 |
| --store_dir | 否 | string | 默认为命令执行的当前路径 | 存储结果的本地路径。 |
| -c | 否 | string | `~/.obdiag/config.yml` | 配置文件路径。 |
| --temp_dir | 否 | string | `/tmp` | 远端节点在日志收集过程中产生的临时文件存储目录。 |
| --inner_config | 否 | string | 默认为空 | obdiag 自用的配置。 |
| --config | 否 | string | 默认为空 | 需被 obdiag 诊断的集群的配置，固定样式：`--config key1=value1 --config key2=value2`。   #### 说明    支持通过该选项配置的参数可参见 [obdiag 配置](https://www.oceanbase.com/docs/common-obdiag-cn-1000000003607628)。 |
| --config_password | 否 | string | 默认为空 | obdiag 使用加密的配置文件时，需通过该选项传入对应的密码。   #### 说明    详情可参见 [配置文件加密](https://www.oceanbase.com/docs/common-obdiag-cn-1000000003607662)。 |

## 使用示例

### 方式一：无配置文件使用（开箱即用）

```shell
# SQL性能问题信息收集，默认不需要添加任何参数的话收集最近30分钟的信息
obdiag gather scene run --scene=observer.perf_sql --env "{db_connect='-h127.0.0.1 -P2881 -utest@test -p****** -Dtest', trace_id='Yxx'}" \
    --config db_host=xx.xx.xx.xx \
    --config db_port=xxxx \
    --config tenant_sys.user=root@sys \
    --config tenant_sys.password=*** \
    --config obcluster.servers.global.ssh_username=test \
    --config obcluster.servers.global.ssh_password=****** \
    --config obcluster.servers.global.home_path=/home/admin/oceanbase

```

### 方式二：有配置文件使用

需要确保已经在 obdiag 配置文件 `config.yml` 中配置好需要收集节点的登录信息。相关的详细配置介绍，参见 [obdiag 配置](https://www.oceanbase.com/docs/common-obdiag-cn-1000000003607628)。

```shell
# SQL性能问题信息收集，默认不需要添加任何参数的话收集最近30分钟的信息
obdiag gather scene run --scene=observer.perf_sql --env "{db_connect='-h127.0.0.1 -P2881 -utest@test -p****** -Dtest', trace_id='Yxx'}"

```

## 结果解读

命令执行后在指定目录下会生成一个文件夹，文件夹形如: obdiag_gather_pack_20240808105846

```shell
#tree
.
├── ob_log_xx.xx.xx.xx_20240611190059_20240611193159.zip # 日志信息
├── resources
│   └── web
│       ├── bootstrap.min.css
│       ├── bootstrap.min.js
│       ├── jquery-3.2.1.min.js
│       └── popper.min.js
├── result_summary.txt
├── sql_result.txt # 问题排查的时候所需 SQL 信息
└── sql_plan_monitor_report.html # SQL性能问题排查报告

```

## 实践案例

案例：用户发生SQL性能问题，需要排查，直接执行如下命令将诊断所需的信息打包好，发给社区论坛或者前线支持人员

```shell
obdiag gather scene run --scene=observer.perf_sql --env "{db_connect='-h127.0.0.1 -P2881 -utest@test -p****** -Dtest', trace_id='Yxx'}" \
    --config db_host=xx.xx.xx.xx \
    --config db_port=xxxx \
    --config tenant_sys.user=root@sys \
    --config tenant_sys.password=*** \
    --config obcluster.servers.global.ssh_username=test \
    --config obcluster.servers.global.ssh_password=****** \
    --config obcluster.servers.global.home_path=/home/admin/oceanbase

```

 上一篇 下一篇 ![有帮助](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) 咨询热线
