全部產品
Search
文件中心

Database Autonomy Service:GetRequestDiagnosisResult - 查詢SQL診斷的結果

更新時間:Apr 08, 2026

調用GetRequestDiagnosisResult介面,查詢SQL診斷的結果。

介面說明

使用該介面需滿足以下前提條件:

  • 在使用 SDK 調用 DAS 服務時,需要將地區指定為 cn-shanghai。

  • 該介面不支援查詢自動 SQL 最佳化的診斷結果

  • 本介面適用的資料庫引擎為:

    • RDS MySQL

    • RDS PostgreSQL

    • RDS SQL Server

    • PolarDB MySQL 版

    • PolarDB PostgreSQL 版(相容 Oracle)

    • ApsaraDB for MongoDB

說明

RDS PostgreSQL 執行個體核心小版本為 20220130 及以上。查看和升級核心小版本,請參見升級核心小版本

調試

您可以在OpenAPI Explorer中直接運行該介面,免去您計算簽名的困擾。運行成功後,OpenAPI Explorer可以自動產生SDK程式碼範例。

調試

授權資訊

下表是API對應的授權資訊,可以在RAM權限原則語句的Action元素中使用,用來給RAM使用者或RAM角色授予調用此API的許可權。具體說明如下:

  • 操作:是指具體的許可權點。

  • 存取層級:是指每個操作的存取層級,取值為寫入(Write)、讀取(Read)或列出(List)。

  • 資源類型:是指操作中支援授權的資源類型。具體說明如下:

    • 對於必選的資源類型,用前面加 * 表示。

    • 對於不支援資源級授權的操作,用全部資源表示。

  • 條件關鍵字:是指雲產品自身定義的條件關鍵字。

  • 關聯操作:是指成功執行操作所需要的其他許可權。操作者必須同時具備關聯操作的許可權,操作才能成功。

操作

存取層級

資源類型

條件關鍵字

關聯操作

hdm:GetRequestDiagnosisResult

get

*全部資源

*

請求參數

名稱

類型

必填

描述

樣本值

InstanceId

string

執行個體 ID。

rm-0iwhhl8gx0ld6****

NodeId

string

節點 ID。

說明

對於 PolarDB MySQL 版、PolarDB PostgreSQL 版(相容 Oracle)和ApsaraDB for MongoDB 等叢集執行個體,需要提供節點 ID。

202****

MessageId

string

診斷 ID, CreateRequestDiagnosis 介面返回的診斷唯一標識。

說明

當 MessageId 為自動 SQL 最佳化的診斷 ID 時,該介面無法返回診斷結果

61820b594664275c4429****

SqlId

string

SQL 模板 ID。

說明

此參數是 DAS 控制台調用 API 時使用,使用者使用此 API 時無需傳入。

None

Source

string

任務來源。

說明

此參數是 DAS 控制台調用 API 時使用,使用者使用此 API 時無需傳入。

None

返回參數

名稱

類型

描述

樣本值

object

Message

string

請求返回訊息。

說明

請求成功時該參數返回 Successful,請求失敗時會返回請求異常資訊(如錯誤碼等)。

Successful

RequestId

string

請求 ID。

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

Data

object

返回資料

messageId

string

診斷 ID,唯一標識。

61820b594664275c4429****

uuid

string

診斷執行個體唯一標識。

hdm_51fe9bc19ec413f4d530431af87a****

accountId

string

使用者識別碼。

2093****

sqlId

string

SQL 模板 ID。

0c95dae3afef77be06572612df9b****

engine

string

資料庫引擎,取值:

  • MySQL

  • PostgreSQL

  • SQLServer

  • PolarDBMySQL

  • PolarDBOracle

  • MongoDB

MySQL

dbSchema

string

資料庫名。

das

param

string

額外資訊。

{"":""}

state

integer

診斷狀態:

  • 0:診斷中。

  • 1:診斷錯誤。

  • 2:診斷完成。

  • 3:SQL 錯誤。

  • 4:引擎錯誤。

2

result

string

SQL 診斷結果。

  • endTime:SQL 診斷的結束時間。

  • errorCode:錯誤碼。
    • 0001:診斷成功。

    • 0003:診斷失敗。

  • errorMessage:錯誤資訊。

  • estimateCost:預估得消耗。
    • cpu:索引的 CPU 限定預估值。

    • io:索引的 IO 消耗預估值。

    • rows:索引的返回列預估值。

  • improvement:效能提升比。

  • indexAdvices:索引建議。
    • columns:索引列。

    • ddlAddIndex:索引 DDL 語句。

    • indexName:索引名。

    • schemaName:資料庫名。

    • tableName:表名。

    • unique:是否唯一索引。

  • ip:執行個體的 IP 位址。

  • messageId:診斷 ID。

  • port:執行個體的連接埠。

  • sqlTag:SQL 標籤。
    • PRED_EQUAL:等值謂詞。

    • CNT_QB:查詢塊數量。

    • CNT_TB:表數量。

    • JOIN_LEFT:左串連。

    • SEL_SMALL:小結果集選擇。

    • AGGR_SEL:彙總選擇。

    • PRED_LT_EQ / PRED_GT_EQ:小於等於 / 大於等於謂詞。

    • PRED_LIKE_PREFIX:LIKE 首碼匹配。

    • ORDER_BY:包含 ORDER BY 子句。

    • LIMIT:包含 LIMIT 子句。

    • GROUP_BY:包含 GROUP BY 子句。

    • JOIN_INNER:內串連。

    • JOIN_RIGHT:右串連。

    • HAVING:包含 HAVING 子句。

    • UNION:包含 UNION 操作。

  • startTime:SQL 診斷的開始時間。

  • success:請求是否執行成功。

  • support:SQL 陳述式是否支援診斷。
    • true:支援。

    • false:不支援。

  • tuningAdvices:SQL 改寫建議。

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

SQL 診斷建立時間,格式為 Unix 時間戳記,單位為毫秒。

1633071840000

gmtModified

string

SQL 診斷修改時間,格式為 Unix 時間戳記,單位為毫秒。

1633071850000

Code

string

返回的狀態代碼。

200

Success

string

請求是否執行成功:

  • true:執行成功。

  • false:執行失敗。

true

樣本

正常返回樣本

JSON格式

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

錯誤碼

HTTP status code

錯誤碼

錯誤資訊

描述

400 InvalidParams The request parameters are invalid. 請求參數錯誤
403 NoPermission You are not authorized to do this action. 沒有許可權執行該操作

訪問錯誤中心查看更多錯誤碼。

變更歷史

更多資訊,參考變更詳情