全部产品
Search
文档中心

数据库自治服务 DAS:GetRequestDiagnosisResult - 查询SQL诊断的结果

更新时间:Dec 23, 2024

调用GetRequestDiagnosisResult接口,查询SQL诊断的结果。

接口说明

使用该接口需满足以下前提条件:

  • 在使用 SDK 调用 DAS 服务时,需要将地域指定为 cn-shanghai。

  • 该接口不支持查询自动 SQL 优化的诊断结果

  • 本接口适用的数据库引擎为:

    • RDS MySQL
    • RDS PostgreSQL
    • RDS SQL Server
    • PolarDB MySQL 版
    • PolarDB PostgreSQL 版(兼容 Oracle)
    • 云数据库 MongoDB 版
说明 RDS PostgreSQL 实例内核小版本为 20220130 及以上。查看和升级内核小版本,请参见升级内核小版本

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

授权信息

下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:

  • 操作:是指具体的权限点。
  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:
    • 对于必选的资源类型,用背景高亮的方式表示。
    • 对于不支持资源级授权的操作,用全部资源表示。
  • 条件关键字:是指云产品自身定义的条件关键字。
  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作访问级别资源类型条件关键字关联操作
hdm:GetRequestDiagnosisResultget
*全部资源
*

请求参数

名称类型必填描述示例值
InstanceIdstring

实例 ID。

rm-0iwhhl8gx0ld6****
NodeIdstring

节点 ID。

说明 对于 PolarDB MySQL 版、PolarDB PostgreSQL 版(兼容 Oracle)和云数据库 MongoDB 等集群实例,需要提供节点 ID。
202****
MessageIdstring

诊断 ID, CreateRequestDiagnosis 接口返回的诊断唯一标识。

说明 当 MessageId 为自动 SQL 优化的诊断 ID 时,该接口无法返回诊断结果
61820b594664275c4429****
SqlIdstring

SQL 模板 ID。

说明 此参数是 DAS 控制台调用 API 时使用,用户使用此 API 时无需传入。
None
Sourcestring

任务来源。

说明 此参数是 DAS 控制台调用 API 时使用,用户使用此 API 时无需传入。
None

返回参数

名称类型描述示例值
object
Messagestring

请求返回消息。

说明 请求成功时该参数返回 Successful,请求失败时会返回请求异常信息(如错误码等)。
Successful
RequestIdstring

请求 ID。

800FBAF5-A539-5B97-A09E-C63AB2F7****
Dataobject

返回数据

messageIdstring

诊断 ID,唯一标识。

61820b594664275c4429****
uuidstring

诊断实例唯一标识。

hdm_51fe9bc19ec413f4d530431af87a****
accountIdstring

用户 ID。

2093****
sqlIdstring

SQL 模板 ID。

0c95dae3afef77be06572612df9b****
enginestring

数据库引擎,取值:

  • MySQL
  • PostgreSQL
  • SQLServer
  • PolarDBMySQL
  • PolarDBOracle
  • MongoDB
MySQL
dbSchemastring

数据库名。

das
paramstring

额外信息。

{"":""}
stateinteger

诊断状态:

  • 0:诊断中。
  • 1:诊断错误。
  • 2:诊断完成。
  • 3:SQL 错误。
  • 4:引擎错误。
2
resultstring

SQL 诊断结果。

  • endTime:SQL 诊断的结束时间。
  • errorCode:错误码。
    • 0001:诊断成功。
    • 0003:诊断失败。
  • errorMessage:错误信息。
  • estimateCost:预估得消耗。
    • cpu:索引的 CPU 消耗预估值。
    • io:索引的 IO 消耗预估值。
    • rows:索引的返回列预估值。
  • improvement:性能提升比。
  • indexAdvices:索引建议。
    • columns:索引列。
    • ddlAddIndex:索引 DDL 语句。
    • indexName:索引名。
    • schemaName:数据库名。
    • tableName:表名。
    • unique:是否唯一索引。
  • ip:实例的 IP 地址。
  • messageId:诊断 ID。
  • port:实例的端口。
  • sqlTag:SQL 标签。
  • startTime:SQL 诊断的开始时间。
  • success:请求是否执行成功。
  • support:SQL 语句是否支持诊断。
    • true:支持。
    • false:不支持。
  • tuningAdvices:SQL 改写建议。
{ "endTime":1636354256000, "errorCode":"0001", "errorMessage":"TFX成功", "estimateCost":{ "cpu":1.7878745150389268, "io":9.948402604746128, "rows":8.889372575194633 }, "improvement":12933.97, "indexAdvices":[ { "columns":[ "work_no" ], "ddlAddIndex":"ALTER TABLE `test`.`work_order` ADD INDEX `idx_workno` (`work_no`)", "indexName":"idx_workno", "schemaName":"test", "tableName":"work_order", "unique":false } ], "ip":"****.mysql.rds.aliyuncs.com", "messageId":"6188c8cb2f1365b16aee****", "port":3306, "sqlTag":"{\"PRED_EQUAL\":\"Y\",\"CNT_QB\":\"1\",\"CNT_TB\":\"1\"}", "startTime":1636354252000, "success":true, "support":true, "tuningAdvices":[ ] }
gmtCreatestring

SQL 诊断创建时间,格式为 Unix 时间戳,单位为毫秒。

1633071840000
gmtModifiedstring

SQL 诊断修改时间,格式为 Unix 时间戳,单位为毫秒。

1633071850000
Codestring

返回的状态码。

200
Successstring

请求是否执行成功:

  • true:执行成功。

  • false:执行失败。

true

示例

正常返回示例

JSON格式

{
  "Message": "Successful",
  "RequestId": "800FBAF5-A539-5B97-A09E-C63AB2F7****",
  "Data": {
    "messageId": "61820b594664275c4429****",
    "uuid": "hdm_51fe9bc19ec413f4d530431af87a****",
    "accountId": "2093****",
    "sqlId": "0c95dae3afef77be06572612df9b****",
    "engine": "MySQL",
    "dbSchema": "das",
    "param": "{\"\":\"\"}",
    "state": 2,
    "result": "{ \"endTime\":1636354256000, \"errorCode\":\"0001\", \"errorMessage\":\"TFX成功\", \"estimateCost\":{ \"cpu\":1.7878745150389268, \"io\":9.948402604746128, \"rows\":8.889372575194633 }, \"improvement\":12933.97, \"indexAdvices\":[ { \"columns\":[ \"work_no\" ], \"ddlAddIndex\":\"ALTER TABLE `test`.`work_order` ADD INDEX `idx_workno` (`work_no`)\", \"indexName\":\"idx_workno\", \"schemaName\":\"test\", \"tableName\":\"work_order\", \"unique\":false } ], \"ip\":\"****.mysql.rds.aliyuncs.com\", \"messageId\":\"6188c8cb2f1365b16aee****\", \"port\":3306, \"sqlTag\":\"{\\\"PRED_EQUAL\\\":\\\"Y\\\",\\\"CNT_QB\\\":\\\"1\\\",\\\"CNT_TB\\\":\\\"1\\\"}\", \"startTime\":1636354252000, \"success\":true, \"support\":true, \"tuningAdvices\":[ ] }",
    "gmtCreate": "1633071840000",
    "gmtModified": "1633071850000"
  },
  "Code": "200",
  "Success": "true"
}

错误码

HTTP status code错误码错误信息描述
400InvalidParamsThe request parameters are invalid.请求参数错误
403NoPermissionYou are not authorized to do this action.没有权限执行该操作

访问错误中心查看更多错误码。

变更历史

变更时间变更内容概要操作
暂无变更历史