DescribeQueryExplain

更新时间:
复制 MD 格式

Obtain the execution plan for an SQL statement.

Operation description

  • This operation supports only ApsaraDB RDS for MySQL and PolarDB for MySQL instances.

  • When using the Alibaba Cloud or DAS SDK, use the latest version.

  • When calling the DAS service with the SDK, set the region to cn-shanghai.

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:DescribeQueryExplain

get

*All Resource

*

None None

Request syntax

POST  HTTP/1.1

Request parameters

Parameter

Type

Required

Description

Example

InstanceId

string

Yes

The ID of the instance.

rm-2ze8g2am97624****

NodeId

string

No

The ID of the node.

Note

For PolarDB for MySQL instances, if you specify a node ID, the system queries the execution plan on that node. Otherwise, it queries the execution plan on a secondary node.For high availability ApsaraDB RDS for MySQL instances, if you specify an instance ID, the system queries the execution plan on that node. Otherwise, it queries the execution plan on a secondary node.

pi-bp1v203xzzh0a****

Sql

string

Yes

The SQL statement for which you want to get the execution plan.

select * from test where name = 'mockUser'

DbName

string

No

The name of the database.

dbtest01

Schema

string

No

Schema information. This is a reserved parameter.

Response elements

Element

Type

Description

Example

object

Response schema

Code

string

The status code returned. A value of 200 indicates success.

200

Message

string

The response message.

Note

If the request succeeds, this parameter returns Successful. If the request fails, this parameter returns error details such as an error code.

Successful

RequestId

string

The ID of the request.

B6D17591-B48B-4D31-9CD6-9B9796B2****

Success

string

Indicates whether the request succeeded:

  • true: The request succeeded.

  • false: The request failed.

true

Data

array<object>

List of execution plans.

object

The returned data.

Id

string

The ID of the query.

1

SelectType

string

The type of the query.

SIMPLE

Table

string

The name of the table.

test

Type

string

The join type.

eq_ref

PossibleKeys

string

The indexes that might be used.

test_idx

Key

string

The index actually used in the execution plan.

PRIMARY

KeyLen

string

The length of the index actually used.

3

Ref

string

The column used by the index.

test_column

Rows

string

The number of rows to scan.

1000

Extra

string

Additional information.

QueryPlan

string

A reserved field for the PostgreSQL engine.

TableList

array

A reserved field for the PostgreSQL engine.

string

A reserved field for the PostgreSQL engine.

IndexList

array

A reserved field for the PostgreSQL engine.

string

A reserved field for the PostgreSQL engine.

LogicalPlanList

array

A reserved field for the PolarDB X engine.

string

A reserved field for the PolarDB X engine.

StmtText

string

A reserved field for the SQL Server engine.

StmtId

string

A reserved field for the SQL Server engine.

NodeId

string

A reserved field for the SQL Server engine.

Parent

string

A reserved field for the SQL Server engine.

PhysicalOp

string

A reserved field for the SQL Server engine.

LogicalOp

string

A reserved field for the SQL Server engine.

Argument

string

A reserved field for the SQL Server engine.

DefinedValues

string

A reserved field for the SQL Server engine.

EstimateRows

string

A reserved field for the SQL Server engine.

EstimateIO

string

A reserved field for the SQL Server engine.

EstimateCPU

string

A reserved field for the SQL Server engine.

AvgRowSize

string

A reserved field for the SQL Server engine.

TotalSubtreeCost

string

A reserved field for the SQL Server engine.

OutputList

string

A reserved field for the SQL Server engine.

Warnings

string

A reserved field for the SQL Server engine.

Parallel

string

A reserved field for the SQL Server engine.

EstimateExecutions

string

A reserved field for the SQL Server engine.

Examples

Success response

JSON format

{
  "Code": "200",
  "Message": "Successful",
  "RequestId": "B6D17591-B48B-4D31-9CD6-9B9796B2****",
  "Success": "true",
  "Data": [
    {
      "Id": "1",
      "SelectType": "SIMPLE",
      "Table": "test",
      "Type": "eq_ref",
      "PossibleKeys": "test_idx",
      "Key": "PRIMARY",
      "KeyLen": "3",
      "Ref": "test_column",
      "Rows": "1000",
      "Extra": "无",
      "QueryPlan": "无",
      "TableList": [
        "无"
      ],
      "IndexList": [
        "无"
      ],
      "LogicalPlanList": [
        "无"
      ],
      "StmtText": "无",
      "StmtId": "无",
      "NodeId": "无",
      "Parent": "无",
      "PhysicalOp": "无",
      "LogicalOp": "无",
      "Argument": "无",
      "DefinedValues": "无",
      "EstimateRows": "无",
      "EstimateIO": "无",
      "EstimateCPU": "无",
      "AvgRowSize": "无",
      "TotalSubtreeCost": "无",
      "OutputList": "无",
      "Warnings": "无",
      "Parallel": "无",
      "EstimateExecutions": "无"
    }
  ]
}

Error codes

HTTP status code

Error code

Error message

Description

400 InvalidParams The request parameters are invalid.

See Error Codes for a complete list.

Release notes

See Release Notes for a complete list.