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

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

  • 在使用SDK调用DAS服务时,需要将地域指定为cn-shanghai。
  • 本接口适用的数据库引擎为:
    • RDS MySQL
    • RDS PostgreSQL
    • RDS SQL Server
    • PolarDB MySQL版
    • PolarDB PostgreSQL版(兼容Oracle)
    • 云数据库MongoDB版
说明 RDS PostgreSQL实例内核小版本为20220130及以上。查看和升级内核小版本,请参见升级内核小版本

请求参数

名称 类型 是否必选 示例值 描述
Action String GetRequestDiagnosisResult

系统规定参数。取值:GetRequestDiagnosisResult

InstanceId String rm-0iwhhl8gx0ld6****

实例ID。

NodeId String 202****

节点ID。

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

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

SqlId String None

SQL模板ID。

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

任务来源。

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

返回数据

名称 类型 示例值 描述
Message String Successful

请求返回消息。

说明 请求成功时该参数返回Successful,请求失败时会返回请求异常信息(如错误码等)。
RequestId String 800FBAF5-A539-5B97-A09E-C63AB2F7****

请求ID。

Data Object

返回数据

messageId String 61820b594664275c4429****

诊断ID,唯一标识。

uuid String hdm_51fe9bc19ec413f4d530431af87a****

诊断实例唯一标识。

accountId String 2093****

用户ID。

sqlId String 0c95dae3afef77be06572612df9b****

SQL模板ID。

engine String MySQL

数据库引擎,取值:

  • MySQL
  • PostgreSQL
  • SQLServer
  • PolarDBMySQL
  • PolarDBOracle
  • MongoDB
dbSchema String das

数据库名。

param String {"":""}

额外信息。

state Integer 2

诊断状态:

  • 0:诊断中。
  • 1:诊断错误。
  • 2:诊断完成。
  • 3:SQL错误。
  • 4:引擎错误。
result String { "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":[ ] }

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改写建议。
gmtCreate String 1633071840000

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

gmtModified String 1633071850000

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

Code String 200

返回的状态码。

Success String true

请求是否执行成功:

  • true:执行成功。
  • false:执行失败。

示例

请求示例

http(s)://das.cn-shanghai.aliyuncs.com/?Action=GetRequestDiagnosisResult
&InstanceId=rm-0iwhhl8gx0ld6****
&NodeId=202****
&MessageId=61820b594664275c4429****
&公共请求参数

正常返回示例

XML格式

HTTP/1.1 200 OK
Content-Type:application/xml

<GetRequestDiagnosisResultResponse>
    <Message>Successful</Message>
    <RequestId>800FBAF5-A539-5B97-A09E-C63AB2F7****</RequestId>
    <Data>
        <messageId>61820b594664275c4429****</messageId>
        <uuid>hdm_51fe9bc19ec413f4d530431af87a****</uuid>
        <accountId>2093****</accountId>
        <sqlId>0c95dae3afef77be06572612df9b****</sqlId>
        <engine>MySQL</engine>
        <dbSchema>das</dbSchema>
        <param>{"":""}</param>
        <state>2</state>
        <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":[ ] }</result>
        <gmtCreate>1633071840000</gmtCreate>
        <gmtModified>1633071850000</gmtModified>
    </Data>
    <Code>200</Code>
    <Success>true</Success>
</GetRequestDiagnosisResultResponse>

JSON格式

HTTP/1.1 200 OK
Content-Type:application/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"
}

错误码

HttpCode 错误码 错误信息 描述
400 InvalidParams The request parameters are invalid. 请求参数错误

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