---
title: "查询 SQL 的性能统计 | OceanBase 文档中心"
description: 查询 SQL 的性能统计 功能说明 查询租户的 SQL 性能统计，按指定的时间区间统计 SQL 的性能。性能数据包括：集群、租户、服务器、数据库、用户、SQL_ID 、响应时间、CPU 时间、执行次数、错误次数等。可以通过 是否 内部 SQL、SQL 文本的关键词、高级搜索 等条件来查询特定 SQL 的性能指标。 说…
---
切换语言

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

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*lJTmRZ61jSUAAAAAAAAAAAAADiGDAQ/original) 云平台 OCPV 4.0.3 企业版

# 查询 SQL 的性能统计

更新时间：2023-08-10 11:45:58

## **功能说明**

查询租户的 SQL 性能统计，按指定的时间区间统计 SQL 的性能。性能数据包括：集群、租户、服务器、数据库、用户、SQL_ID 、响应时间、CPU 时间、执行次数、错误次数等。可以通过 **是否**

**内部 SQL、SQL 文本的关键词、高级搜索** 等条件来查询特定 SQL 的性能指标。 **说明**

该接口的查询较为耗时。若响应时间较长，请适当减小查询的频次、查询的时间范围或并发请求的数量。同时可以检测 OCP Server 和 Monitor DB 的资源使用，酌情调整规格配置。

## **调用说明**

**接口约束**

调用者需具备指定租户的读权限。

**请求路径**

`GET /api/v2/ob/clusters/{clusterId}/tenants/{tenantId}/topSql`

**请求参数**

| 参数 | 类型 | 必选 | 示例值 | 描述 |
| --- | --- | --- | --- | --- |
| clusterId | Integer | 是 | 1 | 集群的 Id |
| tenantId | Integer | 是 | 1001 | 租户的 Id |
| startTime | Datetime | 是 | 2020-02-16T05:32:16+08:00 | 开始时间 |
| endTime | Datetime | 是 | 2020-02-16T07:32:16+08:00 | 结束时间 |
| serverId | Integer | 否 | 300 | 查询在指定 OB 服务器上执行的 SQL。不指定时，查询在所有 OB 服务器上执行的 SQL。 |
| inner | Boolean | 否 | false | 是否包含内部 SQL。内部 SQL 是指由 OB 发起的 SQL。 * 默认为 false，即不包含内部 SQL。 |
| sqlText | String | 否 | hello | SQL 包含的关键词。 * 关键词不区分大小写。 |
| searchAttr | String | 否 | executions | 高级搜索的指标名。需要同时传入 searchOp 和 seachVal 才会生效。 |
| searchOp | String | 否 | GT | 高级搜索的运算符。需要同时传入 searchAttr 和 searchVal 才会生效。 取值范围： * EQ：等于 * NE：不等于 * GT：大于 * GE：大于或等于 * LT：小于 * LE：小于或等于 |
| searchVal | String | 否 | 1543 | 高级搜索的值。需要同时传入 searchAttr 和 searchOp 才会生效。 |

**返回结果**

- 基础数据结构

  | 参数 | 类型 | 说明 |
  | --- | --- | --- |
  | data | Object | 请求的业务数据 |
  | ├─ contents | Array | SQL 性能指标数据的列表，参见后表。 |
  | successful | Boolean | 请求是否成功 |
  | timestamp | Datetime | 服务端完成请求的时间戳 |
  | duration | Integer | 服务端处理请求的时间（毫秒） |
  | status | Integer | 符合 HTTP Status 规范的编码 |
  | traceId | String | 请求的 Trace Id，用于排查问题。 |
  | server | String | 响应请求的服务端的地址 |

- SQL 性能指标的数据结构

  | 参数 | 类型 | 说明 |
  | --- | --- | --- |
  | sqlId | String | SQL 的 ID。 |
  | server | String | OB 服务器的地址。 |
  | dbName | String | SQL 执行所在的数据库。 |
  | userName | String | 执行 SQL 的用户。 |
  | sqlType | String | SQL的类型，取值范围： * SELECT：查询语句 * INSERT：插入语句 * UPDATE：更新语句 * DELETE：删除语句 * REPLACE：替换语句 * EXPLAIN：计划解析 * UNKNOWN：其它语句 |
  | sqlTextShort | String | SQL文本的前100字符。 |
  | inner | Boolean | 是否为内部SQL。 |
  | waitEvent | String | 在指定时间区间内，该SQL最耗时的内部事件，取值范围： * system internal wait * mysql response wait client * sync rpc * db file data read |
  | executions | Integer | SQL在期间内的总执行次数。 |
  | execPs | Float | SQL在期间内的平均每秒执行次数，保留 2 位小数。 |
  | avgAffectedRows | Float | SQL在期间内的平均更新行数，保留 2 位小数。 |
  | avgReturnRows | Float | SQL在期间内的平均返回行数，保留 2 位小数。 |
  | avgPartitionCount | Float | SQL在期间内平均访问分区数。 |
  | failCount | Integer | SQL在期间内的总错误次数。 |
  | failPercentage | Float | SQL在期间内的错误百分比，返回值 [0, 1] ，保留四位小数。 |
  | retCode4012Count | Integer | SQL在期间内发生超时错误（错误码4012）的总次数。 |
  | retCode4013Count | Integer | SQL在期间内发生内存不足错误（错误码 4013）的总次数。 |
  | retCode5001Count | Integer | SQL在期间内发生语法解析错误（错误码 5001）的总次数。 |
  | retCode5024Count | Integer | SQL在期间内发生键值冲突错误（错误码 5024）的总次数。 |
  | retCode5167Count | Integer | SQL在期间内发生数据超长错误（错误码 5167）的总次数。 |
  | retCode5217Count | Integer | SQL在期间内发生未知列错误（错误码 5217）的总次数。 |
  | retCode6002Count | Integer | SQL在期间内发生事务回滚错误（错误码 6002）的总次数。 |
  | avgWaitTime | Float | SQL在期间内平均等待时间。 |
  | avgWaitCount | Float | SQL在期间内的平均等待次数。 |
  | avgRpcCount | Float | SQL在期间内的平均发送RPC次数。 |
  | localPlanPercentage | Float | SQL在期间内的本地计划百分比。 |
  | remotePlanPercentage | Float | SQL在期间内的远程计划百分比。 |
  | disPlanPercentage | Float | SQL在期间内的分布式计划百分比。 |
  | avgElapsedTime | Float | SQL在期间内的平均响应时间（毫秒）。 |
  | maxElapsedTime | Float | SQL在期间内的最大响应时间（毫秒）。 |
  | avgCpuTime | Float | SQL在期间内的平均CPU时间（毫秒）。 |
  | maxCpuTime | Float | SQL在期间内的最大CPU时间（毫秒）。 |
  | avgNetTime | Float | SQL在期间内的平均网络传输时间（毫秒）。 |
  | avgNetWaitTime | Float | SQL在期间内的平均网络入队时间（毫秒）。 |
  | avgQueueTime | Float | SQL在期间内的平均排队时间（毫秒）。 |
  | avgDecodeTime | Float | SQL在期间内的平均语法解析时间（毫秒）。 |
  | avgGetPlanTime | Float | SQL在期间内的平均计划生成时间（毫秒）。 |
  | avgExecuteTime | Float | SQL在期间内的平均计划执行时间（毫秒）。 |
  | avgExecutorRpcCount | Float | SQL在期间内的平均执行RPC请求次数。 |
  | missPlanPercentage | Float | SQL在期间内的计划未命中率，返回值 [0, 1] ，保留四位小数。 |
  | avgApplicationTime | Float | SQL在期间内的平均Application事件等待时间（毫秒）。 |
  | avgConcurrencyWaitTime | Float | SQL在期间内的平均Concurrency事件等待时间（毫秒）。 |
  | avgUserIoWaitTime | Float | SQL在期间内的平均UserIO事件等待时间（毫秒）。 |
  | avgScheduleTime | Float | SQL在期间内的平均Schedule事件等待时间（毫秒）。 |
  | avgRowCacheHit | Float | SQL在期间内的平均RowCache命中次数。 |
  | avgBloomFilterCacheHit | Float | SQL在期间内的平均BloomFilterCache命中次数。 |
  | avgBlockCacheHit | Float | SQL在期间内的平均BlockCache命中次数。 |
  | avgBlockIndexCacheHit | Float | SQL在期间内的平均BlockIndexCache命中次数。 |
  | avgDiskReads | Float | SQL在期间内的平均磁盘读次数。 |
  | retryCount | Integer | SQL在期间内的总计重试次数。 |
  | tableScanPercentage | Float | SQL在期间内的表扫描百分比。 |
  | strongConsistencyPercentage | Float | SQL在期间内的强一致性事务百分比，返回值 [0, 1] ，保留四位小数。 |
  | weakConsistencyPercentage | Float | SQL在期间内的弱一致性事务百分比，返回值 [0, 1] ，保留四位小数。 |
  | avgMemstoreReadRows | Float | SQL在期间内的平均MemStore读行数。 |
  | avgSsstoreReadRows | Float | SQL在期间内的平均SsStore读行数。 |

  **说明**

  返回的 SQL 文本只包含前 100 字符。若需要查看 SQL 全文本，可使用 查询 SQL 文本 的接口。

## **示例**

**请求示例**

查询集群 Id 为 1 、租户 Id 为 1001 的 SQL 性能。时间范围为 2020-11-03T19:00:00+08:00 ～ 2020-11-03T20:00。指定高级搜索条件为：执行次数大于或等于500。

```code
GET /api/v2/ob/clusters/1/tenants/1001/topSql?searchAttr=executions&searchOp=GE&searchVal=500&startTime=2020-11-03T19%3A00%3A00%2B08%3A00&endTime=2020-11-03T20%3A00%3A00%2B08%3A00

```

**返回示例**

实际返回性能数据的数量，跟数据库负载和查询时间区间相关，这里只展示两条性能数据。

```unknow
{
    "duration": 1435,
    "server": "a83ad33525",
    "status": 200,
    "successful": true,
    "timestamp": "2020-11-04T11:49:03.802+08:00",
    "traceId": "ead2abb032cc464b",
    "data": {
        "contents": [
            {
                "avgAffectedRows": 0.00,
                "avgApplicationWaitTime": 0.00,
                "avgBlockCacheHit": 0.00,
                "avgBlockIndexCacheHit": 0.00,
                "avgBloomFilterCacheHit": 0.00,
                "avgConcurrencyWaitTime": 0.00,
                "avgCpuTime": 0.09,
                "avgDecodeTime": 0.00,
                "avgDiskReads": 0.00,
                "avgElapsedTime": 0.09,
                "avgExecuteTime": 0.04,
                "avgExecutorRpcCount": 0.00,
                "avgGetPlanTime": 0.05,
                "avgMemstoreReadRows": 0.00,
                "avgNetTime": 0.00,
                "avgNetWaitTime": 0.00,
                "avgPartitionCount": 1.00,
                "avgQueueTime": 0.00,
                "avgReturnRows": 0.00,
                "avgRowCacheHit": 0.00,
                "avgRpcCount": 0.00,
                "avgScheduleTime": 0.00,
                "avgSsstoreReadRows": 0.00,
                "avgUserIoWaitTime": 0.00,
                "avgWaitCount": 0.00,
                "avgWaitTime": 0.00,
                "dbName": "bar",
                "distPlanPercentage": 0.00,
                "execPs": 2.11,
                "executions": 7522,
                "failCount": 0,
                "failPercentage": 0.00,
                "inner": true,
                "localPlanPercentage": 1.00,
                "maxCpuTime": 0.00,
                "maxElapsedTime": 0.00,
                "missPlanPercentage": 0.00,
                "remotePlanPercentage": 0.00,
                "retCode4012Count": 0,
                "retCode4013Count": 0,
                "retCode5001Count": 0,
                "retCode5024Count": 0,
                "retCode5167Count": 0,
                "retCode5217Count": 0,
                "retCode6002Count": 0,
                "retryCount": 0,
                "server": "xxx.xxx.xxx.1:2882",
                "sqlId": "89FF9AC900FA242F1DEF8B2211377F60",
                "sqlTextShort": "DELETE FROM X WHERE ID = 3",
                "sqlType": "DELETE",
                "strongConsistencyPercentage": 1.00,
                "tableScanPercentage": 0.00,
                "userName": "test",
                "waitEvent": "none",
                "weakConsistencyPercentage": 0.00
            },
            {
                "avgAffectedRows": 0.00,
                "avgApplicationWaitTime": 0.00,
                "avgBlockCacheHit": 1.00,
                "avgBlockIndexCacheHit": 1.00,
                "avgBloomFilterCacheHit": 0.00,
                "avgConcurrencyWaitTime": 0.00,
                "avgCpuTime": 0.39,
                "avgDecodeTime": 0.00,
                "avgDiskReads": 0.00,
                "avgElapsedTime": 0.42,
                "avgExecuteTime": 0.28,
                "avgExecutorRpcCount": 0.00,
                "avgGetPlanTime": 0.11,
                "avgMemstoreReadRows": 1.00,
                "avgNetTime": 0.00,
                "avgNetWaitTime": 0.00,
                "avgPartitionCount": 2.00,
                "avgQueueTime": 0.02,
                "avgReturnRows": 2.00,
                "avgRowCacheHit": 0.00,
                "avgRpcCount": 0.00,
                "avgScheduleTime": 0.00,
                "avgSsstoreReadRows": 1.00,
                "avgUserIoWaitTime": 0.00,
                "avgWaitCount": 0.00,
                "avgWaitTime": 0.00,
                "dbName": "oceanbase",
                "distPlanPercentage": 0.00,
                "execPs": 1.00,
                "executions": 3568,
                "failCount": 0,
                "failPercentage": 0.00,
                "inner": false,
                "localPlanPercentage": 1.00,
                "maxCpuTime": 0.00,
                "maxElapsedTime": 0.00,
                "missPlanPercentage": 0.00,
                "remotePlanPercentage": 0.00,
                "retCode4012Count": 0,
                "retCode4013Count": 0,
                "retCode5001Count": 0,
                "retCode5024Count": 0,
                "retCode5167Count": 0,
                "retCode5217Count": 0,
                "retCode6002Count": 0,
                "retryCount": 0,
                "server": "xxx.xxx.xxx.2:2882",
                "sqlId": "9CFB17EA7B3F88B92C6BD433D845963A",
                "sqlTextShort": "select 1",
                "sqlType": "SELECT",
                "strongConsistencyPercentage": 0.00,
                "tableScanPercentage": 0.00,
                "userName": "foo",
                "waitEvent": "none",
                "weakConsistencyPercentage": 1.00
            }
        ]
    }
}

```

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