Todos los productos
Search
Centro de documentos

PolarDB:Uso

Última actualización: Sep 05, 2026

SQL Trace registra los planes de ejecución y las estadísticas en tiempo de ejecución de las sentencias SQL en su clúster de PolarDB for MySQL. Úselo para detectar regresiones de rendimiento provocadas por cambios en los planes de ejecución e identificar las sentencias SQL que más recursos consumen.

Requisitos previos

Antes de empezar, asegúrese de que su clúster ejecute una de a continuación versiones:

  • PolarDB for MySQL 8.0.1, versión de revisión 8.0.1.1.30 o posterior

  • PolarDB for MySQL 8.0.2, versión de revisión 8.0.2.2.12 o posterior

Para comprobar la versión de su clúster, consulte Query the engine version.

Limitaciones

SQL Trace no rastrea las sentencias relacionadas con cuentas: CREATE USER, DROP USER y GRANT.

Parámetros

Parámetro

Descripción

loose_sql_trace_type

Modo de seguimiento. Valores válidos: OFF (predeterminado), DEMAND, ALL, SLOW_QUERY. El valor SLOW_QUERY requiere la versión de revisión 8.0.1.1.34 o posterior en PolarDB for MySQL 8.0.1.

loose_sql_sharing_size

Memoria máxima asignada a SQL Sharing, el componente subyacente de SQL Trace. Valores válidos: de 8388608 a 1073741824 bytes. Valor predeterminado: 134217728 bytes.

loose_sql_trace_plan_expire_time

Tiempo durante el cual se conserva un plan de ejecución rastreado sin reutilizarse. Si ninguna sentencia posterior ejecuta el mismo plan dentro de este periodo, el plan se desaloja. Valores válidos: de 0 a 18446744073709551615 segundos. Valor predeterminado: 604800 segundos (7 días).

Elija un modo de seguimiento

Seleccione un modo según lo que necesite monitorear:

Modo

Qué rastrea

Cuándo usarlo

OFF

Nada (predeterminado)

SQL Trace está inactivo

DEMAND

Sentencias SQL específicas que usted agregue

Cuando ya conoce las consultas lentas o críticas

ALL

Todas las sentencias SQL

Para investigar problemas de rendimiento desconocidos en todo el clúster

SLOW_QUERY

Consultas que superan el umbral de consulta lenta

Cuando solo le interesan las consultas lentas

Según pruebas de Sysbench ( oltp_read_only y oltp_read_write ) con 2,000 tablas de 10,000 filas cada una, en clústeres de 4 núcleos/8 GB y 8 núcleos/32 GB, el modo ALL reduce el rendimiento de la base de datos menos del 3%. SQL Trace utiliza diseños sin bloqueos para minimizar el impacto bajo alta concurrencia.

Rastree sentencias SQL

Rastree todas las sentencias SQL

Establezca loose_sql_trace_type en ALL.

Rastree sentencias SQL específicas

  1. Establezca loose_sql_trace_type en DEMAND.

  2. Agregue las sentencias que desea rastrear mediante dbms_sql.add_trace.

Consulte las estadísticas de ejecución

Todas las sentencias rastreadas se almacenan en la tabla information_schema.sql_sharing. Consúltela para ver el plan de ejecución y las estadísticas de cualquier sentencia rastreada.

Obtenga el plan de ejecución de una sentencia específica

SELECT * FROM information_schema.sql_sharing WHERE sql_id = polar_sql_id('select * from t');

Identifique las principales sentencias SQL

Utilice estas consultas para identificar las sentencias que requieren mayor atención. Comience por el tiempo total de ejecución para encontrar el costo general más alto. Después, use las demás consultas para precisar las causas raíz.

Las 10 principales por tiempo total de ejecución: identifica las sentencias con el costo acumulado más alto en todas sus ejecuciones.

SELECT * FROM information_schema.sql_sharing
WHERE TYPE = 'sql'
ORDER BY SUM_EXEC_TIME DESC
LIMIT 10;

Las 10 principales por tiempo promedio de ejecución: detecta las sentencias lentas por cada llamada, incluso si se invocan con poca frecuencia.

SELECT * FROM information_schema.sql_sharing
WHERE TYPE = 'sql'
ORDER BY SUM_EXEC_TIME / EXECUTIONS DESC
LIMIT 10;

Las 10 principales por total de filas examinadas: señala las sentencias que generan más operaciones de E/S. Esto suele indicar índices faltantes o planes de consulta ineficientes.

SELECT * FROM information_schema.sql_sharing
WHERE TYPE = 'sql'
ORDER BY SUM_ROWS_EXAMINED DESC
LIMIT 10;

Gestione las sentencias rastreadas y las estadísticas

Elimine sentencias rastreadas

Para dejar de rastrear sentencias específicas agregadas en el modo DEMAND:

Restablezca las estadísticas

Para restablecer todas las estadísticas en information_schema.sql_sharing, utilice dbms_sql.reset_trace_stats.

Borre y vuelva a cargar los datos

Para borrar todos los datos de information_schema.sql_sharing, utilice dbms_sql.flush_trace.

Para volver a cargar las plantillas SQL desde mysql.sql_sharing y reanudar la recopilación de estadísticas de las sentencias agregadas previamente, utilice dbms_sql.reload_trace.