获取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
请求参数
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
database_name |
是 |
String |
参数解释: 数据库名称。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 |
|
schema_name |
否 |
String |
参数解释: schema名称。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 |
|
sql_script |
是 |
String |
参数解释: SQL脚本。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 |
|
node_id |
否 |
String |
参数解释: 实例节点ID。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 |
|
node_type |
否 |
String |
参数解释: 节点类型。 约束限制: 不涉及。 取值范围:
默认取值: 不涉及。 |
|
use_default_search_path |
否 |
Boolean |
参数解释: PostgreSQL是否使用默认searchPath。 约束限制: 仅在实例是PostgreSQL时可用。 取值范围: 不涉及。 默认取值: 不涉及。 |
|
ignore_limit |
否 |
String |
参数解释: 数据库名称。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 |
|
perpage |
是 |
String |
参数解释: 每页记录数。 约束限制: 不涉及。 取值范围: [0, 100],实际取决于查询。 默认取值: 不涉及。 |
|
curpage |
是 |
String |
参数解释: 页码。 约束限制: 不涉及。 取值范围: [0, 2^31-1],实际取决于查询。 默认取值: 不涉及。 |
响应参数
状态码: 200
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
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 |
参数解释: 不能编辑的原因。 取值范围:
|
|
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 |
参数解释: 执行状态。 取值范围:
|
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
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. |
错误码
请参见错误码。