更新时间:2025-12-04 GMT+08:00
分享

获取SQL执行计划 - GetPlan

功能介绍

获取SQL执行计划。

调试

您可以在API Explorer中调试该接口。

授权信息

账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限。

  • 如果使用角色与策略授权,具体权限要求请参见权限和授权项
  • 如果使用身份策略授权,需具备如下身份策略权限。

    授权项

    访问级别

    资源类型(*为必须)

    条件键

    别名

    依赖的授权项

    das:clouddba:getSqlExecutionPlan

    read

    instance

    -

    -

    -

URI

POST /v3/{project_id}/connections/{connection_id}/get-plan

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

参数解释

租户在某一Region下的项目ID。

获取方法请参见获取项目ID

约束限制:

不涉及。

取值范围:

只能由英文字母、数字组成,且长度为32个字符。

默认取值:

不涉及。

connection_id

String

参数解释:

连接ID。用户使用数据库账号与数据库建立的连接ID(数据库用户ID由创建实例连接接口创建)。

约束限制:

不涉及。

取值范围:

只能由英文字母、数字、中划线组成,且长度为36个字符的UUID。

默认取值:

不涉及。

请求参数

表2 请求Body参数

参数

是否必选

参数类型

描述

database_name

String

参数解释:

数据库名称。

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

schema_name

String

参数解释:

schema名称。

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

sql_script

String

参数解释:

SQL脚本。

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

node_id

String

参数解释:

实例节点ID。

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

node_type

String

参数解释:

节点类型。

约束限制:

不涉及。

取值范围:

  • master:主节点
  • slave:副节点
  • readreplica:只读节点

默认取值:

不涉及。

use_default_search_path

Boolean

参数解释:

PostgreSQL是否使用默认searchPath。

约束限制:

仅在实例是PostgreSQL时可用。

取值范围:

不涉及。

默认取值:

不涉及。

ignore_limit

String

参数解释:

数据库名称。

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

perpage

String

参数解释:

每页记录数。

约束限制:

不涉及。

取值范围:

[0, 100],实际取决于查询。

默认取值:

不涉及。

curpage

String

参数解释:

页码。

约束限制:

不涉及。

取值范围:

[0, 2^31-1],实际取决于查询。

默认取值:

不涉及。

响应参数

状态码: 200

表3 响应Body参数

参数

参数类型

描述

column_values

Array of Maps

参数解释:

字段值。

取值范围:

不涉及。

metadata

Array of 表4 Objects

参数解释:

字段属性,字段名等。

取值范围:

不涉及。

result_type

String

参数解释:

结果集类型。

取值范围:

不涉及。

rows

Integer

参数解释:

行数。

取值范围:

不涉及。

time_delay

String

参数解释:

执行耗时。

取值范围:

不涉及。

can_edit

Long

参数解释:

结果集是否可编辑。

取值范围:

不涉及。

can_export

Boolean

参数解释:

结果集是否可导出。

取值范围:

不涉及。

edit_db_name

String

参数解释:

编辑库名。

取值范围:

不涉及。

edit_table

String

参数解释:

编辑表名。

取值范围:

不涉及。

edit_primary_keys

Array of Strings

参数解释:

主键信息。

取值范围:

不涉及。

cannot_edit_reason

Integer

参数解释:

不能编辑的原因。

取值范围:

  • 1001:虚表不允许编辑
  • 1002:多表不允许编辑
  • 1003:无主键不允许编辑
  • 1004:元数据不允许编辑
  • 1005:结果集没有包含所有主键不允许编辑
  • 1006:多结果集不允许编辑
  • 1007:系统表不允许编辑
  • 1009:视图不允许编辑
  • 1010:不支持编辑

extend_datas

Array of 表3 Objects

参数解释:

额外信息。

取值范围:

不涉及。

data_sum

Integer

参数解释:

数据总量。

取值范围:

不涉及。

big_table

Boolean

参数解释:

是否为大标。

取值范围:

不涉及。

warning

Array of Strings

参数解释:

执行命令告警信息。

取值范围:

不涉及。

sql

String

参数解释:

要执行的SQL语句。

取值范围:

不涉及。

explain_sql

Boolean

参数解释:

是否为执行计划语句。

取值范围:

不涉及。

page_state

String

参数解释:

页面状态。

取值范围:

不涉及。

exceed_data

Boolean

参数解释:

查询结果是否超过规定大小。

取值范围:

不涉及。

execute_status

String

参数解释:

执行状态。

取值范围:

  • finish:执行完毕
  • pending:执行中
表4 Column

参数

参数类型

描述

auto_increment

Boolean

参数解释:

是否自增。

取值范围:

不涉及。

data_type

String

参数解释:

数据类型。

取值范围:

不涉及。

db_name

String

参数解释:

数据库名称。

取值范围:

不涉及。

label

String

参数解释:

标签。

取值范围:

不涉及。

name

String

参数解释:

名称。

取值范围:

不涉及。

real_name

String

参数解释:

实际名称。

取值范围:

不涉及。

size

Integer

参数解释:

尺寸大小。

取值范围:

不涉及。

table_name

String

参数解释:

表名。

取值范围:

不涉及。

schema_name

String

参数解释:

schema名称。

取值范围:

不涉及。

readonly

Boolean

参数解释:

是否只读。

取值范围:

不涉及。

is_binary

Boolean

参数解释:

是否二进制。

取值范围:

不涉及。

int_data_type

Integer

参数解释:

数据类型。

取值范围:

不涉及。

请求示例

POST https://das.cn-north-1.myhuaweicloud.com/v3/054e292c9880d4992f02c0196d3ea468/connections/179e525e-0e9c-4dcc-9dd7-ee2f36121e23/get-plan 
{
  "node_id": "7c1efa30d2a340b68bc0a80652e14179no01",
  "node_type": "master",
  "database_name": "czh_test",
  "sql_script": "SELECT *\nFROM lbw",
  "curpage": 1,
  "perpage": 50,
  "ignore_limit": false
}

响应示例

状态码: 200

Success.

{
    "column_values": [
        {
            "COLUMN_5": "ALL",
            "COLUMN_2": "SIMPLE",
            "COLUMN_11": "100.00",
            "COLUMN_1": "1",
            "COLUMN_10": "1002",
            "COLUMN_3": "lbw"
        }
    ],
    "metadata": [
        {
            "auto_increment": false,
            "data_type": "BIGINT UNSIGNED",
            "db_name": "",
            "label": "id",
            "name": "COLUMN_1",
            "real_name": "id",
            "size": 3,
            "table_name": "",
            "schema_name": "",
            "readonly": false
        },
        {
            "auto_increment": false,
            "data_type": "VARCHAR",
            "db_name": "",
            "label": "select_type",
            "name": "COLUMN_2",
            "real_name": "select_type",
            "size": 19,
            "table_name": "",
            "schema_name": "",
            "readonly": false
        },
        {
            "auto_increment": false,
            "data_type": "VARCHAR",
            "db_name": "",
            "label": "table",
            "name": "COLUMN_3",
            "real_name": "table",
            "size": 64,
            "table_name": "",
            "schema_name": "",
            "readonly": false
        },
        {
            "auto_increment": false,
            "data_type": "MEDIUMTEXT",
            "db_name": "",
            "label": "partitions",
            "name": "COLUMN_4",
            "real_name": "partitions",
            "size": 6316032,
            "table_name": "",
            "schema_name": "",
            "readonly": false
        },
        {
            "auto_increment": false,
            "data_type": "VARCHAR",
            "db_name": "",
            "label": "type",
            "name": "COLUMN_5",
            "real_name": "type",
            "size": 10,
            "table_name": "",
            "schema_name": "",
            "readonly": false
        },
        {
            "auto_increment": false,
            "data_type": "VARCHAR",
            "db_name": "",
            "label": "possible_keys",
            "name": "COLUMN_6",
            "real_name": "possible_keys",
            "size": 4096,
            "table_name": "",
            "schema_name": "",
            "readonly": false
        },
        {
            "auto_increment": false,
            "data_type": "VARCHAR",
            "db_name": "",
            "label": "key",
            "name": "COLUMN_7",
            "real_name": "key",
            "size": 64,
            "table_name": "",
            "schema_name": "",
            "readonly": false
        },
        {
            "auto_increment": false,
            "data_type": "VARCHAR",
            "db_name": "",
            "label": "key_len",
            "name": "COLUMN_8",
            "real_name": "key_len",
            "size": 4096,
            "table_name": "",
            "schema_name": "",
            "readonly": false
        },
        {
            "auto_increment": false,
            "data_type": "VARCHAR",
            "db_name": "",
            "label": "ref",
            "name": "COLUMN_9",
            "real_name": "ref",
            "size": 1024,
            "table_name": "",
            "schema_name": "",
            "readonly": false
        },
        {
            "auto_increment": false,
            "data_type": "BIGINT UNSIGNED",
            "db_name": "",
            "label": "rows",
            "name": "COLUMN_10",
            "real_name": "rows",
            "size": 10,
            "table_name": "",
            "schema_name": "",
            "readonly": false
        },
        {
            "auto_increment": false,
            "data_type": "DOUBLE",
            "db_name": "",
            "label": "filtered",
            "name": "COLUMN_11",
            "real_name": "filtered",
            "size": 4,
            "table_name": "",
            "schema_name": "",
            "readonly": false
        },
        {
            "auto_increment": false,
            "data_type": "VARCHAR",
            "db_name": "",
            "label": "Extra",
            "name": "COLUMN_12",
            "real_name": "Extra",
            "size": 255,
            "table_name": "",
            "schema_name": "",
            "readonly": false
        }
    ],
    "result_type": "metadata",
    "rows": 1,
    "time_delay": 3,
    "can_edit": false,
    "true": false,
    "cannot_edit_reason": 1004,
    "data_sum": 44,
    "big_table": false,
    "sql": "/*sql from das*/explain SELECT *\nFROM lbw",
    "explain_sql": true,
    "exceed_data": false,
    "execute_status": "finished"
}

状态码

状态码

描述

200

Success.

400

Client error.

500

Server error.

错误码

请参见错误码

相关文档