
# 获取SQL诊断结果 - GetTuningResult
#### 功能介绍
获取SQL诊断结果。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/DAS/doc?api=LogoffBuiltInAccount)中调试该接口。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-das/das_01_0130.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                       | 访问级别 | 资源类型（\*为必须） | 条件键 | 别名 | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | das:clouddba:sqlDiagnosis | read | instance    | -   | -  | -      |
     
  
 
#### URI
POST /v3/{project_id}/connections/{connection_id}/tuning/get-tuning-result
表1路径参数 
| 参数            | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| project_id    | 是    | String | **参数解释**： 租户在某一Region下的项目ID。 获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-das/das_01_0036.html)。 **约束限制：** 不涉及。 **取值范围：** 只能由英文字母、数字组成，且长度为32个字符。 **默认取值：** 不涉及。 |
| connection_id | 是    | String | **参数解释：** 连接ID。用户使用数据库账号与数据库建立的连接ID（数据库用户ID由[创建实例连接](https://support.huaweicloud.com/api-das/das_01_0070.html)创建）。 **约束限制：** 不涉及。 **取值范围：** 只能由英文字母、数字、中划线组成，且长度为36个字符的UUID。 **默认取值：** 不涉及。        |
   
#### 请求参数
表2请求Body参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| message_id | 是    | String | **参数解释：** SQL诊断消息ID（消息ID由[创建SQL诊断任务](https://support.huaweicloud.com/api-das/das_01_0227.html)创建）。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。 |
   
#### 响应参数
**状态码： 200**
表3响应Body参数 
| 参数          | 参数类型                                         | 描述                                                                                                                    |
|:---|:---|:---|
| tune_result | [表4] Object | **参数解释：** 诊断结果。 **取值范围：** 不涉及。 |
   
 表4AdviceResult 
| 参数             | 参数类型                                                     | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|
| message_id     | String                                                   | **参数解释：** 诊断消息ID。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| status_code    | String                                                   | **参数解释：** 诊断任务状态码。 **取值范围：** 0000                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| error_code     | String                                                   | **参数解释：** 错误码。 **取值范围：** - 0：等待  - 1：运行中  - 2：失败  - 3：成功  - 4：超时  - 5：OBS文件已删除   |
| error_message  | String                                                   | **参数解释：** 错误信息。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| index_advice   | Array of [表5] objects  | **参数解释：** 索引优化建议列表。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| tuning_advice  | Array of Strings                                         | **参数解释：** 语句优化建议列表。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| formatted_sql  | String                                                   | **参数解释：** 格式化后的SQL语句。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| original_sql   | String                                                   | **参数解释：** 原始SQL语句。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| explain        | Array of [表6] objects  | **参数解释：** 执行计划。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| tb_pos_infos   | Array of [表7] objects | **参数解释：** SQL语句中识别的表信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| feedback_infos | [表8] object           | **参数解释：** 反馈意见。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   
 表5IndexAdvice 
| 参数            | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|
| schema_name   | String           | **参数解释：** schema名称。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                              |
| table_name    | String           | **参数解释：** 表名称。 **取值范围：** 0000                                                                                                                                                                                                                                                                                                                                                     |
| index_name    | String           | **参数解释：** 索引名称。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                    |
| columns       | Array of Strings | **参数解释：** 列列表。                                                                                                                                                                                                                                                                                                                                                                                                                              |
| unique        | Boolean          | **参数解释：** 是否为唯一键。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                 |
| track_id      | String           | **参数解释：** 追踪ID。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                |
| quality       | String           | **参数解释：** SQL质量。 **取值范围：** - HighQuality  - NormalQuality  - LowQuality  - AbandonQuality   |
| ddl_add_index | String           | **参数解释：** 添加索引语句。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                             |
   
 表6Explain 
| 参数            | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|
| id            | Integer | **参数解释：** SQL执行ID。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| select_type   | String  | **参数解释：** Select类型。 **取值范围：** - SIMPLE：简单查询  - PRIMARY：主查询  - UNION：UNION中的第二个或者后续查询  - DEPENDENT UNION：UNION中的相关查询  - UNION RESULT：UNION的结果集  - SUBQUERY：子查询  - DEPENDENT SUBQUERY：相关子查询  - DERIVED：派生表  - UNCACHEABLE SUBQUERY：不能缓存的子查询   |
| table         | String  | **参数解释：** 表名称。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| type          | String  | **参数解释：** MySQL在表中找到行的方式。 **取值范围：** - ALL：全表扫描  - index：全索引扫描  - range：范围扫描  - ref：非唯一索引扫描  - eq_ref：唯一索引关联  - const：常量级  - system：系统级  - NULL：无需访问表                                                                                                                                                                   |
| rows          | Long    | **参数解释：** 预估扫描的行数。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| possible_keys | String  | **参数解释：** 可能选择的索引。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| key           | String  | **参数解释：** 实际选择的索引。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| filtered      | Double  | **参数解释：** 根据表条件过滤的行的百分比。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| key_len       | String  | **参数解释：** 索引中使用的字节数。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| ref           | String  | **参数解释：** 与索引相比的列。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| extra         | String  | **参数解释：** 额外信息。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
   
 表7TbPosInfo 
| 参数          | 参数类型    | 描述                                                                                                                           |
|:---|:---|:---|
| schema_name | String  | **参数解释：** schema名称。 **取值范围：** 不涉及。 |
| origin_name | String  | **参数解释：** 原始表名称。 **取值范围：** 不涉及。       |
| name        | String  | **参数解释：** 表名称。 **取值范围：** 不涉及。        |
| start       | Integer | **参数解释：** 开始位置。 **取值范围：** 不涉及。      |
| end         | Integer | **参数解释：** 结束位置。 **取值范围：** 不涉及。       |
   
 表8FeedbackInfo 
| 参数               | 参数类型   | 描述                                                                                                                       |
|:---|:---|:---|
| id               | Long   | **参数解释：** 反馈消息ID。 **取值范围：** 不涉及。 |
| project_id       | String | **参数解释：** 项目ID。 **取值范围：** 不涉及。   |
| message_id       | String | **参数解释：** 诊断消息ID。 **取值范围：** 不涉及。    |
| feedback_grade   | String | **参数解释：** 反馈等级。 **取值范围：** 不涉及。   |
| feedback_content | String | **参数解释：** 反馈内容。 **取值范围：** 不涉及。     |
| gmt_created      | Long   | **参数解释：** 反馈创建时间。 **取值范围：** 不涉及。    |
| gmt_modified     | Long   | **参数解释：** 反馈修改时间。 **取值范围：** 不涉及。    |
   
#### 请求示例
```
POST https://das.cn-north-1.myhuaweicloud.com/v3/054e292c9880d4992f02c0196d3ea468/connections/179e525e-0e9c-4dcc-9dd7-ee2f36121e23/tuning/get-tuning-result 
 
{ 
 "message_id": "692d5a7a0cf263510807db3b" 
}
```
#### 响应示例
**状态码： 200**
Success.
```
{
    "tune_result": {
        "message_id": "692d5a7a0cf263510807db3b",
        "status_code": "0000",
        "error_message": "Success",
        "error_code": "3",
        "index_advice": [],
        "tuning_advice": [
            "最外层Select未指定Where条件，可能返回比预期更多的行。"
        ],
        "formatted_sql": "SELECT *\nFROM lbw",
        "original_sql": "SELECT * FROM lbw",
        "explain": [
            {
                "id": 1,
                "select_type": "SIMPLE",
                "table": "lbw",
                "type": "ALL",
                "rows": 1002,
                "filtered": 100.0
            }
        ],
        "tb_pos_infos": [
            {
                "schema_name": "czh_test",
                "origin_name": "lbw",
                "name": "lbw",
                "start": 14,
                "end": 17
            }
        ],
        "feedback_infos": {}
    }
}
```
#### 状态码
| 状态码 | 描述            |
|:---|:---|
| 200 | Success.      |
| 400 | Client error. |
| 500 | Server error. |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-das/das_01_0035.html)。
