Todos los productos
Search
Centro de documentos

Database Autonomy Service:GetRequestDiagnosisResult

Última actualización: Sep 01, 2026

Obtiene los resultados del diagnóstico de SQL.

Descripción de la operación

Esta API tiene los siguientes requisitos previos:

  • Cuando utilice un SDK para llamar al servicio DAS, debe establecer la región en cn-shanghai.

  • Esta API no admite la consulta de resultados de diagnóstico para la optimización automática de SQL.

  • Esta API admite los siguientes motores de base de datos:

    • RDS MySQL.

    • RDS PostgreSQL.

    • RDS SQL Server.

    • PolarDB for MySQL.

    • PolarDB for PostgreSQL (compatible con Oracle)

    • ApsaraDB for MongoDB.

Nota

Las instancias de RDS PostgreSQL requieren la versión menor del kernel 20220130 o posterior. Para ver y actualizar la versión menor del kernel, consulte Actualizar la versión menor del kernel.

Pruébelo ahora

Pruebe esta API en OpenAPI Explorer sin necesidad de firma manual. Las llamadas exitosas generan automáticamente código SDK acorde a sus parámetros. Descárguelo con seguridad de credenciales integrada para uso local.

Test

Autorización de RAM

La siguiente tabla describe la autorización necesaria para invocar esta API. Puede definirla en una directiva de Resource Access Management (RAM). A continuación, se detallan las columnas de la tabla:

  • Action: Estas acciones se utilizan en el elemento Action de las declaraciones de directivas de permisos de RAM para otorgar permisos que permitan realizar la operación.

  • API: La API que debe invocarse para llevar a cabo la acción.

  • Nivel de acceso: Nivel de acceso predefinido que se concede para cada API. Valores válidos: create, list, get, update y delete.

  • Tipo de recurso: Tipo de recurso que admite autorización para ejecutar la acción. Indica si la acción es compatible con permisos a nivel de recurso. El recurso especificado debe ser compatible con la acción; de lo contrario, la directiva no surtirá efecto.

    • En las API con permisos a nivel de recurso, los tipos de recursos obligatorios se marcan con un asterisco (*). Especifique el Alibaba Cloud Resource Name (ARN) correspondiente en el elemento Resource de la directiva.

    • Para las API sin permisos a nivel de recurso, se muestra All Resources. Utilice un asterisco (*) en el elemento Resource de la directiva.

  • Clave de condición: Claves de condición definidas por el servicio. Permiten un control granular y se aplican ya sea solo a acciones o a acciones asociadas con recursos específicos. Además de las claves de condición específicas del servicio, Alibaba Cloud proporciona un conjunto de common condition keys aplicables a todos los servicios compatibles con RAM.

  • Acción dependiente: Acciones dependientes necesarias para ejecutar la acción principal. Para completar la operación, el usuario de RAM o el rol de RAM debe contar con permisos para realizar todas las acciones dependientes.

Action

Nivel de acceso

Tipo de recurso

Clave de condición

Acción dependiente

hdm:GetRequestDiagnosisResult

get

*All Resource

*

Ninguna Ninguna

Parámetros de la solicitud

Parámetro

Tipo

Obligatorio

Descripción

Ejemplo

InstanceId

string

Sí

El ID de la instancia.

rm-0iwhhl8gx0ld6****

NodeId

string

No

El ID del nodo.

Nota

Este parámetro es obligatorio para instancias de clúster como PolarDB for MySQL, PolarDB for PostgreSQL (compatible con Oracle) y ApsaraDB for MongoDB.

202****

MessageId

string

Sí

El ID de diagnóstico único devuelto por la operación CreateRequestDiagnosis.

Nota

Si MessageId es el ID de diagnóstico para la optimización automática de SQL, esta operación no devuelve resultados de diagnóstico.

61820b594664275c4429****

SqlId

string

No

El ID de la plantilla de SQL.

Nota

Este parámetro es para uso interno de la consola de DAS. No necesita especificar este parámetro.

Ninguna

Source

string

No

El origen de la tarea.

Nota

Este parámetro es para uso interno de la consola de DAS. No necesita especificar este parámetro.

Ninguna

Elementos de la respuesta

Elemento

Tipo

Descripción

Ejemplo

object

Los parámetros de respuesta.

Message

string

El mensaje de respuesta.

Nota

Este parámetro devuelve Successful si la solicitud se realiza correctamente. Si la solicitud falla, devuelve un mensaje de error, que puede incluir un código de error.

Successful

RequestId

string

El ID de la solicitud.

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

Data

object

Los datos devueltos.

messageId

string

El ID único del diagnóstico.

61820b594664275c4429****

uuid

string

El identificador único de la instancia diagnosticada.

hdm_51fe9bc19ec413f4d530431af87a****

accountId

string

El ID de usuario.

2093****

sqlId

string

El ID de la plantilla de SQL.

0c95dae3afef77be06572612df9b****

engine

string

El motor de base de datos. Valores válidos:

  • MySQL

  • PostgreSQL

  • SQL Server

  • PolarDB-X

  • PolarDB for Oracle

  • MongoDB

MySQL

dbSchema

string

El nombre de la base de datos.

das

param

string

Información adicional.

{"":""}

state

integer

El estado del diagnóstico. Valores válidos:

  • 0: En progreso.

  • 1: Error de diagnóstico.

  • 2: Completado.

  • 3: Error de SQL.

  • 4: Error del motor.

2

result

string

Los detalles del resultado del diagnóstico de SQL, devueltos como una cadena con formato JSON.

  • endTime: La hora de finalización del diagnóstico de SQL.

  • errorCode: El código de error.

    • 0001: El diagnóstico fue exitoso.

    • 0003: El diagnóstico falló.

  • errorMessage: El mensaje de error.

  • estimateCost: El costo estimado.

    • cpu: El costo estimado de CPU de la consulta.

    • io: El costo estimado de E/S de la consulta.

    • rows: El número estimado de filas devueltas por la consulta.

  • improvement: La proporción de mejora de rendimiento.

  • indexAdvices: Las sugerencias de índices.

    • columns: Las columnas del índice.

    • ddlAddIndex: La sentencia DDL para crear el índice.

    • indexName: El nombre del índice.

    • schemaName: El nombre del esquema.

    • tableName: El nombre de la tabla.

    • unique: Indica si el índice es un índice único.

  • ip: La dirección IP de la instancia.

  • messageId: El ID del diagnóstico.

  • port: El puerto de la instancia.

  • sqlTag: Las etiquetas de SQL.

    • PRED_EQUAL: Predicado de igualdad.

    • CNT_QB: Número de bloques de consulta.

    • CNT_TB: Número de tablas.

    • JOIN_LEFT: Left join.

    • SEL_SMALL: Selección de conjunto de resultados pequeño.

    • AGGR_SEL: Selección de agregación.

    • PRED_LT_EQ / PRED_GT_EQ: Predicado menor o igual que / mayor o igual que.

    • PRED_LIKE_PREFIX: Coincidencia de prefijo LIKE.

    • ORDER_BY: Contiene una cláusula ORDER BY.

    • LIMIT: Contiene una cláusula LIMIT.

    • GROUP_BY: Contiene una cláusula GROUP BY.

    • JOIN_INNER: Inner join.

    • JOIN_RIGHT: Right join.

    • HAVING: Contiene una cláusula HAVING.

    • UNION: Contiene una operación UNION.

  • startTime: La hora de inicio del diagnóstico de SQL.

  • success: Indica si el diagnóstico fue exitoso.

  • support: Indica si la sentencia SQL se puede diagnosticar.

    • true: Admitido.

    • false: No admitido.

  • tuningAdvices: Las sugerencias de reescritura de SQL.

{ "endTime":1636354256000, "errorCode":"0001", "errorMessage":"TFX succeeded", "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

La hora de creación del diagnóstico de SQL, proporcionada como una marca de tiempo Unix en milisegundos.

1633071840000

gmtModified

string

La hora de la última modificación del diagnóstico de SQL, proporcionada como una marca de tiempo Unix en milisegundos.

1633071850000

Code

string

El código de estado devuelto.

200

Success

string

Indica si la solicitud fue exitosa. Valores válidos:

  • true: La solicitud se realizó correctamente.

  • false: La solicitud falló.

true

Ejemplos

Respuesta exitosa

JSON Formato

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

Códigos de error

Código de estado HTTP

Código de error

Mensaje de error

Descripción

400 InvalidParams The request parameters are invalid.
403 NoPermission You are not authorized to do this action.

Consulte Códigos de error para ver la lista completa.

Notas de la versión

Consulte Notas de la versión para ver la lista completa.