Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Centro de ayuda/ TaurusDB/ Referencia de la API/ Las API (recomendadas)/ Gestión de registros/ Consulta de estadísticas de registros de consultas lentas
Actualización más reciente 2025-03-21 GMT+08:00

Consulta de estadísticas de registros de consultas lentas

Función

Esta API se utiliza para consultar las estadísticas de registros de consultas lentas. Antes de invocar a esta API:

URI

POST /v3/{project_id}/instances/{instance_id}/slow-logs/statistics

Tabla 1 Parámetros de URI

Parámetro

Obligatorio

Tipo

Descripción

project_id

String

ID de proyecto de un tenant en una región.

Para obtener este valor, consulte Obtención de un ID de proyecto.

instance_id

String

ID de instancia, que es compatible con el formato UUID.

Parámetros de solicitud

Tabla 2 Parámetros de encabezado de solicitud

Parámetro

Obligatorio

Tipo

Descripción

X-Auth-Token

String

Token de usuario.

Para obtener este valor, invoque a la API de IAM para obtener un token de usuario.

El valor de X-Subject-Token en el encabezado de respuesta es el valor del token.

X-Language

No

String

Tipo de idioma de solicitud. El valor predeterminado es en-us.

Valores:

  • en-us
  • zh-cn
Tabla 3 Parámetros del cuerpo de solicitud

Parámetro

Obligatorio

Tipo

Descripción

limit

No

Integer

Número de registros (resultados de la consulta) mostrados en cada página. El número oscila entre 1 y 100. El valor predeterminado es 10.

offset

No

Integer

Desplazamiento de índice. El valor predeterminado es 0, que indica que la consulta comienza desde el primer dato.

node_id

String

ID del nodo.

type

No

String

Tipo de sentencia. Si este parámetro se deja vacío, se consultan todos los tipos de sentencia.

Valores enumerados:

  • INSERT
  • UPDATE
  • SELECT
  • DELETE
  • CREATE
  • ALL

database

No

String

Nombre de la base de datos. No puede contener caracteres especiales como < > &.

start_time

String

Hora de inicio en formato aaaa-mm-ddThh:mm:ssZ.

T es el separador entre el calendario y la notación horaria del tiempo. Z indica el desplazamiento de la zona horaria. Por ejemplo, en la zona horaria de Beijing, el desplazamiento es de +0800.

end_time

String

Hora de finalización en formato "aaaa-mm-ddThh:mm:ssZ".

T es el separador entre el calendario y la notación horaria del tiempo. Z indica el desplazamiento de la zona horaria. Por ejemplo, en la zona horaria de Beijing, el desplazamiento es de +0800. Solo se pueden consultar los registros de consultas lentas generados durante el último mes.

sort

No

String

Campo de clasificación.

  • executeTime: indica la ordenación de los registros de consulta lentos por tiempo medio de ejecución en orden descendente.
  • Si este parámetro se deja vacío o se establece con otros valores, los registros de consultas lentas se ordenan por ejecuciones en orden descendente.

order

No

String

Secuencia de clasificación. El valor predeterminado es desc.

Valores enumerados:

  • desc
  • asc

Parámetros de respuesta

Código de estado: 200

Tabla 4 Parámetros del cuerpo de respuesta

Parámetro

Tipo

Descripción

slow_log_list

Array of ShowSlowLogStatisticsItem objects

Lista de estadísticas de logs de consultas lentas.

total_count

Integer

Total de registros.

Tabla 5 ShowSlowLogStatisticsItem

Parámetro

Tipo

Descripción

client_ip

String

Dirección IP.

count

String

Número de ejecuciones.

database

String

Base de datos a la que pertenecen los registros de consultas lentas.

lock_time

String

Tiempo promedio de espera de bloqueo.

node_id

String

ID del nodo.

query_sample

String

Sintaxis de ejecución.

rows_examined

Integer

Número medio de filas analizadas.

rows_sent

Integer

Número medio de filas contenidas en un resultado.

time

String

Duración media de ejecución.

type

String

Tipo de sentencia.

users

String

Cuenta.

Código de estado: 400

Tabla 6 Parámetros del cuerpo de respuesta

Parámetro

Tipo

Descripción

error_code

String

Código de error.

error_msg

String

Mensaje de error.

Código de estado: 500

Tabla 7 Parámetros del cuerpo de respuesta

Parámetro

Tipo

Descripción

error_code

String

Código de error.

error_msg

String

Mensaje de error.

Ejemplo de la solicitud

Consulta de estadísticas de registros de consultas lentas

POST https://{endpoint}/v3/054e292c9880d4992f02c0196d3ea468/instances/6754902da1f447269c6979b0590102a5in07/slow-logs/statistics

{
  "limit" : 10,
  "offset" : 0,
  "node_id" : "4006312b96c541749d735c20e86dd169no07",
  "type" : null,
  "database" : null,
  "start_time" : "2024-08-16T14:37:00+0800",
  "end_time" : "2024-08-16T16:51:22+0800",
  "sort" : null,
  "order" : "desc"
}

Ejemplo de la respuesta

Código de estado: 200

Operación exitosa.

{
  "slow_log_list" : [ {
    "node_id" : "4006312b96c541749d735c20e86dd169no07",
    "count" : "1 (100.00%)",
    "time" : "11.00014 s",
    "lock_time" : "0.00000 s",
    "rows_sent" : 1,
    "rows_examined" : 1,
    "database" : "",
    "users" : "root",
    "query_sample" : "select sleep(N);",
    "client_ip" : "localhost",
    "type" : "SELECT"
  } ],
  "total_count" : 1
}

Ejemplo de código de SDK

El código de SDK de ejemplo es el siguiente.

Java

Consulta de estadísticas de registros de consultas lentas

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package com.huaweicloud.sdk.test;

import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.gaussdb.v3.region.GaussDBRegion;
import com.huaweicloud.sdk.gaussdb.v3.*;
import com.huaweicloud.sdk.gaussdb.v3.model.*;


public class ShowSlowLogStatisticsSolution {

    public static void main(String[] args) {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        String ak = System.getenv("CLOUD_SDK_AK");
        String sk = System.getenv("CLOUD_SDK_SK");
        String projectId = "{project_id}";

        ICredential auth = new BasicCredentials()
                .withProjectId(projectId)
                .withAk(ak)
                .withSk(sk);

        GaussDBClient client = GaussDBClient.newBuilder()
                .withCredential(auth)
                .withRegion(GaussDBRegion.valueOf("<YOUR REGION>"))
                .build();
        ShowSlowLogStatisticsRequest request = new ShowSlowLogStatisticsRequest();
        request.withInstanceId("{instance_id}");
        ShowSlowLogStatisticsRequestBody body = new ShowSlowLogStatisticsRequestBody();
        body.withOrder("desc");
        body.withEndTime("2024-08-16T16:51:22+0800");
        body.withStartTime("2024-08-16T14:37:00+0800");
        body.withNodeId("4006312b96c541749d735c20e86dd169no07");
        body.withOffset(0);
        body.withLimit(10);
        request.withBody(body);
        try {
            ShowSlowLogStatisticsResponse response = client.showSlowLogStatistics(request);
            System.out.println(response.toString());
        } catch (ConnectionException e) {
            e.printStackTrace();
        } catch (RequestTimeoutException e) {
            e.printStackTrace();
        } catch (ServiceResponseException e) {
            e.printStackTrace();
            System.out.println(e.getHttpStatusCode());
            System.out.println(e.getRequestId());
            System.out.println(e.getErrorCode());
            System.out.println(e.getErrorMsg());
        }
    }
}

Python

Consulta de estadísticas de registros de consultas lentas

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# coding: utf-8

import os
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkgaussdb.v3.region.gaussdb_region import GaussDBRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkgaussdb.v3 import *

if __name__ == "__main__":
    # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak = os.environ["CLOUD_SDK_AK"]
    sk = os.environ["CLOUD_SDK_SK"]
    projectId = "{project_id}"

    credentials = BasicCredentials(ak, sk, projectId)

    client = GaussDBClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(GaussDBRegion.value_of("<YOUR REGION>")) \
        .build()

    try:
        request = ShowSlowLogStatisticsRequest()
        request.instance_id = "{instance_id}"
        request.body = ShowSlowLogStatisticsRequestBody(
            order="desc",
            end_time="2024-08-16T16:51:22+0800",
            start_time="2024-08-16T14:37:00+0800",
            node_id="4006312b96c541749d735c20e86dd169no07",
            offset=0,
            limit=10
        )
        response = client.show_slow_log_statistics(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)

Go

Consulta de estadísticas de registros de consultas lentas

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    gaussdb "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/gaussdb/v3"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/gaussdb/v3/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/gaussdb/v3/region"
)

func main() {
    // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak := os.Getenv("CLOUD_SDK_AK")
    sk := os.Getenv("CLOUD_SDK_SK")
    projectId := "{project_id}"

    auth := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        WithProjectId(projectId).
        Build()

    client := gaussdb.NewGaussDBClient(
        gaussdb.GaussDBClientBuilder().
            WithRegion(region.ValueOf("<YOUR REGION>")).
            WithCredential(auth).
            Build())

    request := &model.ShowSlowLogStatisticsRequest{}
	request.InstanceId = "{instance_id}"
	orderShowSlowLogStatisticsRequestBody:= "desc"
	offsetShowSlowLogStatisticsRequestBody:= int32(0)
	limitShowSlowLogStatisticsRequestBody:= int32(10)
	request.Body = &model.ShowSlowLogStatisticsRequestBody{
		Order: &orderShowSlowLogStatisticsRequestBody,
		EndTime: "2024-08-16T16:51:22+0800",
		StartTime: "2024-08-16T14:37:00+0800",
		NodeId: "4006312b96c541749d735c20e86dd169no07",
		Offset: &offsetShowSlowLogStatisticsRequestBody,
		Limit: &limitShowSlowLogStatisticsRequestBody,
	}
	response, err := client.ShowSlowLogStatistics(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

Más lenguajes de programación

Para obtener ejemplos de código de SDK en más lenguajes de programación, visite API Explorer y haga clic en la ficha Sample Code. Los ejemplos de código se pueden generar automáticamente.

Código de estado

Para más detalles, véase Códigos de estado.

Código de error

Para más detalles, véase Códigos de error.