Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Importante
El escalado automático de Lakebase está en Beta en las siguientes regiones: eastus2, westeurope, westus.
El escalado automático de Lakebase es la versión más reciente de Lakebase con proceso de escalado automático, escalado a cero, bifurcación y restauración instantánea. Para ver la comparación de características con Lakebase Provisioned, consulte Elección entre versiones.
pg_stat_statements es una extensión de Postgres que proporciona una vista estadística detallada de la ejecución de instrucciones SQL dentro de la base de datos de Postgres de Lakebase. Realiza un seguimiento de la información, como recuentos de ejecución, tiempos de ejecución totales y promedios, y mucho más, lo que le ayuda a analizar y optimizar el rendimiento de las consultas SQL.
Cuándo usar pg_stat_statements
Use pg_stat_statements cuando necesite:
- Estadísticas detalladas de ejecución de consultas y métricas de rendimiento
- Identificación de consultas lentas o ejecutadas con frecuencia
- Análisis de rendimiento de consultas e información de optimización
- Análisis de cargas de trabajo de base de datos y planeamiento de capacidad
- Integración con herramientas y paneles de supervisión personalizados
Habilitar pg_stat_statements
La pg_stat_statements extensión está disponible en Lakebase Postgres. Para habilitarla:
Conéctese a la base de datos mediante el editor de SQL o un cliente de Postgres.
Ejecute el siguiente comando SQL para crear la extensión:
CREATE EXTENSION IF NOT EXISTS pg_stat_statements;La extensión comienza a recopilar estadísticas inmediatamente después de la creación.
Persistencia de datos
Las estadísticas recopiladas por la pg_stat_statements extensión se almacenan en memoria y no se conservan cuando el proceso de Lakebase se suspende o reinicia. Por ejemplo, si la capacidad de computación disminuye debido a la inactividad, se pierden las estadísticas existentes. Las nuevas estadísticas se recopilan una vez que se reinicia el proceso.
Este comportamiento significa que:
- Restablecimiento de estadísticas después de reinicios o suspensiones de proceso
- El análisis de rendimiento de larga duración requiere una disponibilidad de proceso coherente
- Es posible que desee exportar estadísticas importantes antes del mantenimiento planeado o reinicios.
Nota:
Considere la posibilidad de ejecutar las consultas de supervisión periódicamente y almacenar los resultados externamente si necesita datos históricos de rendimiento en los eventos de ciclo de vida de proceso.
Más información: Extensiones de Postgres
Estadísticas de ejecución de consultas
Después de habilitar la extensión, puede consultar las estadísticas de ejecución mediante la vista
SELECT * FROM pg_stat_statements LIMIT 10;
La vista contiene detalles como:
| ID de usuario | dbid | queryid | query | calls |
|---|---|---|---|---|
| 16391 | 16384 | -9047282044438606287 | SELECT * FROM usuarios; | 10 |
Para obtener una lista completa de columnas y descripciones, consulte la documentación de PostgreSQL.
Consultas de supervisión clave
Use estas consultas para analizar el rendimiento de la base de datos:
Búsqueda de consultas más lentas
Esta consulta identifica las consultas con el tiempo de ejecución promedio más alto, lo que puede indicar consultas ineficaces que necesitan optimización:
SELECT
query,
calls,
total_exec_time,
mean_exec_time,
(total_exec_time / calls) AS avg_time_ms
FROM pg_stat_statements
ORDER BY mean_exec_time DESC
LIMIT 20;
Búsqueda de consultas ejecutadas con más frecuencia
Las consultas ejecutadas con más frecuencia son rutas de acceso críticas y candidatos de optimización. Esta consulta incluye ratios de aciertos de caché para ayudar a identificar las consultas que podrían beneficiarse de una mejor indexación:
SELECT
query,
calls,
total_exec_time,
rows,
100.0 * shared_blks_hit / nullif(shared_blks_hit + shared_blks_read, 0) AS hit_percent
FROM pg_stat_statements
ORDER BY calls DESC
LIMIT 20;
Identificar consultas con la E/S más alta
Esta consulta identifica las consultas que realizan la mayoría de las operaciones de E/S de disco, lo que puede afectar al rendimiento general de la base de datos:
SELECT
query,
calls,
shared_blks_read + shared_blks_written AS total_io,
shared_blks_read,
shared_blks_written
FROM pg_stat_statements
ORDER BY (shared_blks_read + shared_blks_written) DESC
LIMIT 20;
Búsqueda de consultas que consumen mucho tiempo
Esta consulta identifica las consultas que consumen el tiempo de ejecución más total en todas las ejecuciones:
SELECT
query,
calls,
total_exec_time,
mean_exec_time,
rows
FROM pg_stat_statements
ORDER BY total_exec_time DESC
LIMIT 10;
Búsqueda de consultas que devuelven muchas filas
Esta consulta identifica las consultas que devuelven grandes conjuntos de resultados, lo que podría beneficiarse de la paginación o el filtrado:
SELECT
query,
calls,
rows,
(rows / calls) AS avg_rows_per_call
FROM pg_stat_statements
ORDER BY rows DESC
LIMIT 10;
Restablecer estadísticas
Para restablecer las estadísticas recopiladas por pg_stat_statements:
Nota:
Solo los databricks_superuser roles tienen el privilegio necesario para ejecutar esta función. El rol predeterminado creado con un proyecto de Lakebase y los roles creados en la aplicación de Lakebase son miembros del rol databricks_superuser.
SELECT pg_stat_statements_reset();
Esta función borra todos los datos estadísticos acumulados, como los tiempos de ejecución y los recuentos de instrucciones SQL, y comienza a recopilar datos nuevos. Resulta especialmente útil cuando quieras empezar desde cero con la recopilación de estadísticas de rendimiento.
Recursos
Más información: Documentación de PostgreSQL