首批通过分布式安全可靠测评,为关键业务系统打造
查询 SQL 的性能统计趋势
更新时间:2023-08-10 11:45:58
功能说明
查询某一 SQL 在指定时间区间内的性能统计的趋势。性能趋势由多个采样点组成,每一采样点包含在指定时间戳的性能统计。该接口可用于观察 SQL 性能随时间的变化。 说明
指定较大的范围的时间区间时,返回的采样点数量会趋近于 120 个点。
调用说明
接口约束
调用者需具备指定租户的读权限。
请求路径
GET /api/v2/ob/clusters/{clusterId}/tenants/{tenantId}/sqls/{sqlId}/trends
请求参数
| 参数 | 类型 | 必选 | 示例值 | 描述 |
|---|---|---|---|---|
| clusterId | Integer | 是 | 1 | 集群的 ID |
| tenantId | Integer | 是 | 1001 | 租户的 ID |
| sqlId | String | 是 | C9B3A63AFF8F2A408CCF3D5B0F36682D | SQL 的 ID |
| startTime | Datetime | 是 | 2020-02-16T05:32:16+08:00 | 开始时间 |
| endTime | Datetime | 是 | 2020-02-16T07:32:16+08:00 | 结束时间 |
| serverId | Integer | 否 | 300 | 查询 SQL 在指定 OB 服务器上执行的的性能指标。不指定时,查询在所有 OB 服务器上执行的性能指标。 |
| dbName | String | 否 | oceanbase | 查询 SQL 在指定数据库内执行的性能指标。不指定时,查询 SQL 在所有数据库的内执行的性能指标。 |
返回结果
- 基础数据结构
| 参数 | 类型 | 说明 |
|---|---|---|
| data | Object | 请求的数据。 |
| ├─ contents | Array | SQL 性能采样数据的数组,SQL 性能采样数据结构见下表。 |
| successful | Boolean | 请求是否成功。 |
| timestamp | Datetime | 服务端完成请求的时间戳。 |
| duration | Integer | 服务端处理请求的时间(毫秒)。 |
| status | Integer | 符合 HTTP Status 规范的编码。 |
| traceId | String | 请求的 Trace Id,用于排查问题。 |
| server | String | 响应请求的应用服务的地址。 |
- SQL 性能的数据结构
| 参数 | 类型 | 说明 |
|---|---|---|
| timestamp | Datetime | 采样的时间戳 |
| 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在期间内发生超时错误的总次数 |
| 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读行数 |
示例
请求示例
查询集群 ID 为 1 、租户 ID 为 1001、SQL ID 为 C9B3A63AFF8F2A408CCF3D5B0F36682D 的性能趋势。时间范围为 2020-11-03T19:00:00+08:00 ~ 2020-11-03T20:00。只查询 SQL 在服务器 ID 为 2、数据库名 oceanbase 上的性能。
GET /api/v2/ob/clusters/1/tenants/1001/sqls/C9B3A63AFF8F2A408CCF3D5B0F36682D/trends?startTime=2020-11-03T19%3A00%3A00%2B08%3A00&endTime=2020-11-03T20%3A00%3A00%2B08%3A00&dbName=oceanbase&serverId=2
返回示例
{
"duration": 2134,
"server": "a83ad33525",
"status": 200,
"successful": true,
"timestamp": "2020-11-03T20:03:16.783+08:00",
"traceId": "23d1fed3db5f4bef",
"data": {
"contents": [
{
"avgAffectedRows": 0.00,
"avgApplicationWaitTime": 0.00,
"avgBlockCacheHit": 0.19,
"avgBlockIndexCacheHit": 0.19,
"avgBloomFilterCacheHit": 0.00,
"avgConcurrencyWaitTime": 0.00,
"avgCpuTime": 0.75,
"avgDecodeTime": 0.00,
"avgDiskReads": 0.00,
"avgElapsedTime": 1.36,
"avgExecuteTime": 1.18,
"avgExecutorRpcCount": 0.00,
"avgGetPlanTime": 0.16,
"avgMemstoreReadRows": 0.98,
"avgNetTime": 0.00,
"avgNetWaitTime": 0.00,
"avgPartitionCount": 1.00,
"avgQueueTime": 0.01,
"avgReturnRows": 7.24,
"avgRowCacheHit": 0.00,
"avgRpcCount": 0.36,
"avgScheduleTime": 0.00,
"avgSsstoreReadRows": 2.40,
"avgUserIoWaitTime": 0.00,
"avgWaitCount": 0.36,
"avgWaitTime": 0.58,
"distPlanPercentage": 0.00,
"execPs": 14.60,
"executions": 438,
"failCount": 0,
"failPercentage": 0.00,
"localPlanPercentage": 0.37,
"maxCpuTime": 0.00,
"maxElapsedTime": 1.00,
"missPlanPercentage": 0.00,
"remotePlanPercentage": 0.63,
"retCode4012Count": 0,
"retCode4013Count": 0,
"retCode5001Count": 0,
"retCode5024Count": 0,
"retCode5167Count": 0,
"retCode5217Count": 0,
"retCode6002Count": 0,
"retryCount": 0,
"strongConsistencyPercentage": 1.00,
"tableScanPercentage": 0.00,
"timestamp": "2020-11-03T19:00:00+08:00",
"weakConsistencyPercentage": 0.00
},
{
"avgAffectedRows": 0.00,
"avgApplicationWaitTime": 0.00,
"avgBlockCacheHit": 0.19,
"avgBlockIndexCacheHit": 0.19,
"avgBloomFilterCacheHit": 0.00,
"avgConcurrencyWaitTime": 0.00,
"avgCpuTime": 0.78,
"avgDecodeTime": 0.00,
"avgDiskReads": 0.00,
"avgElapsedTime": 1.37,
"avgExecuteTime": 1.19,
"avgExecutorRpcCount": 0.00,
"avgGetPlanTime": 0.16,
"avgMemstoreReadRows": 1.01,
"avgNetTime": 0.00,
"avgNetWaitTime": 0.00,
"avgPartitionCount": 1.00,
"avgQueueTime": 0.01,
"avgReturnRows": 7.33,
"avgRowCacheHit": 0.00,
"avgRpcCount": 0.36,
"avgScheduleTime": 0.00,
"avgSsstoreReadRows": 2.44,
"avgUserIoWaitTime": 0.00,
"avgWaitCount": 0.36,
"avgWaitTime": 0.57,
"distPlanPercentage": 0.00,
"execPs": 14.53,
"executions": 436,
"failCount": 0,
"failPercentage": 0.00,
"localPlanPercentage": 0.36,
"maxCpuTime": 0.00,
"maxElapsedTime": 0.00,
"missPlanPercentage": 0.00,
"remotePlanPercentage": 0.64,
"retCode4012Count": 0,
"retCode4013Count": 0,
"retCode5001Count": 0,
"retCode5024Count": 0,
"retCode5167Count": 0,
"retCode5217Count": 0,
"retCode6002Count": 0,
"retryCount": 0,
"strongConsistencyPercentage": 1.00,
"tableScanPercentage": 0.00,
"timestamp": "2020-11-03T19:00:30+08:00",
"weakConsistencyPercentage": 0.00
}
]
}
}