All Products
Search
Document Center

Database Autonomy Service:GetRequestDiagnosisResult

Last Updated:Mar 13, 2026

Queries the results of an SQL diagnostics task.

Operation description

Before you call this operation, take note of the following items:

  • If you use an SDK to call the API operations of Database Autonomy Service (DAS), you must set the region ID to cn-shanghai.

  • You cannot call this operation to query the diagnostic result of the automatic SQL optimization feature.

  • This operation is applicable to the following database engines:

    • RDS MySQL

    • RDS PostgreSQL

    • RDS SQL Server

    • PolarDB for MySQL

    • PolarDB for PostgreSQL (Compatible with Oracle)

    • ApsaraDB for MongoDB

Note

If your instance is an ApsaraDB RDS for PostgreSQL instance, make sure that the minor engine version of your instance is 20220130 or later. For more information about how to check and update the minor engine version of an ApsaraDB RDS for PostgreSQL instance, see Update the minor engine version of an ApsaraDB RDS for PostgreSQL instance.

Try it now

Try this API in OpenAPI Explorer, no manual signing needed. Successful calls auto-generate SDK code matching your parameters. Download it with built-in credential security for local usage.

Test

RAM authorization

The table below describes the authorization required to call this API. You can define it in a Resource Access Management (RAM) policy. The table's columns are detailed below:

  • Action: The actions can be used in the Action element of RAM permission policy statements to grant permissions to perform the operation.

  • API: The API that you can call to perform the action.

  • Access level: The predefined level of access granted for each API. Valid values: create, list, get, update, and delete.

  • Resource type: The type of the resource that supports authorization to perform the action. It indicates if the action supports resource-level permission. The specified resource must be compatible with the action. Otherwise, the policy will be ineffective.

    • For APIs with resource-level permissions, required resource types are marked with an asterisk (*). Specify the corresponding Alibaba Cloud Resource Name (ARN) in the Resource element of the policy.

    • For APIs without resource-level permissions, it is shown as All Resources. Use an asterisk (*) in the Resource element of the policy.

  • Condition key: The condition keys defined by the service. The key allows for granular control, applying to either actions alone or actions associated with specific resources. In addition to service-specific condition keys, Alibaba Cloud provides a set of common condition keys applicable across all RAM-supported services.

  • Dependent action: The dependent actions required to run the action. To complete the action, the RAM user or the RAM role must have the permissions to perform all dependent actions.

Action

Access level

Resource type

Condition key

Dependent action

hdm:GetRequestDiagnosisResult

get

*All Resource

*

None None

Request parameters

Parameter

Type

Required

Description

Example

InstanceId

string

Yes

The instance ID.

rm-0iwhhl8gx0ld6****

NodeId

string

No

The node ID.

Note

You must specify the node ID if your database instance is a PolarDB for MySQL cluster, a PolarDB for PostgreSQL (compatible with Oracle) instance, or an ApsaraDB for MongoDB database.

202****

MessageId

string

Yes

The unique ID of the diagnostic task.

Note

If you set MessageId to the task ID of the automatic SQL optimization feature, no result is returned.

61820b594664275c4429****

SqlId

string

No

The SQL template ID.

Note

This parameter is required if you call this operation in the DAS console. You do not need to specify this parameter when you call this operation.

None

Source

string

No

The source of the task.

Note

This parameter is required if you call this operation in the DAS console. You do not need to specify this parameter when you call this operation.

None

Response elements

Element

Type

Description

Example

object

Message

string

The returned message.

Note

If the request was successful, Successful is returned. If the request failed, an error message such as an error code is returned.

Successful

RequestId

string

The request ID.

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

Data

object

The returned data.

messageId

string

The unique ID of the diagnostics task.

61820b594664275c4429****

uuid

string

The unique ID of the diagnostics instance.

hdm_51fe9bc19ec413f4d530431af87a****

accountId

string

The user ID.

2093****

sqlId

string

The SQL template ID.

0c95dae3afef77be06572612df9b****

engine

string

The database engine. Valid values:

  • MySQL

  • PostgreSQL

  • SQLServer

  • PolarDBMySQL

  • PolarDBOracle

  • MongoDB

MySQL

dbSchema

string

The name of the database.

das

param

string

The additional information.

{"":""}

state

integer

The state of the diagnostics task. Valid values:

  • 0: The diagnostics task is in progress.

  • 1: A diagnostics error occurred.

  • 2: The diagnostics task is complete.

  • 3: An SQL error occurred.

  • 4: An engine error occurred.

2

result

string

The result of the SQL diagnostics task. The result includes the following information:

  • endTime: the end time of the SQL diagnostics task.

  • errorCode: the error code.

    • 0001: The SQL diagnostics task is complete.

    • 0003: The SQL diagnostics task failed.

  • errorMessage: the error message.

  • estimateCost: the estimated cost.

    • cpu: the estimated CPU utilization of the index.

    • io: the estimated I/O usage of the index.

    • rows: the estimated values of the rows returned for the index.

  • improvement: the performance improvement ratio.

  • indexAdvices: the index recommendations, which include the following information:

    • columns: the index columns.

    • ddlAddIndex: the DDL statement for the index.

    • indexName: the name of the index.

    • schemaName: the name of the database.

    • tableName: the name of the table.

    • unique: indicates whether the index is unique.

  • ip: the IP address of the instance.

  • messageId: the ID of the diagnostics task.

  • port: the port used to connect to the instance.

  • sqlTag: the SQL tag.

  • startTime: the start time of the SQL diagnostics task.

  • success: indicates whether the request was successful.

  • support: indicates whether the SQL statement can be diagnosed. Valid values:

    • true

    • false

  • tuningAdvices : the SQL rewrite suggestions.

{ "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

string

The time when the SQL diagnostics task was created. This value is a UNIX timestamp representing the number of milliseconds that have elapsed since January 1, 1970, 00:00:00 UTC.

1633071840000

gmtModified

string

The time when the SQL diagnostics task was modified. This value is a UNIX timestamp representing the number of milliseconds that have elapsed since January 1, 1970, 00:00:00 UTC.

1633071850000

Code

string

The HTTP status code returned.

200

Success

string

Indicates whether the request was successful. Valid values:

  • true

  • false

true

Examples

Success response

JSON format

{
  "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"
}

Error codes

HTTP status code

Error code

Error message

Description

400 InvalidParams The request parameters are invalid.
403 NoPermission You are not authorized to do this action.

See Error Codes for a complete list.

Release notes

See Release Notes for a complete list.