全部產品
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. 沒有許可權執行該操作

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

變更歷史

更多資訊,參考變更詳情。