AlloyDB para PostgreSQL ofrece un asesor de índices que realiza un seguimiento de las consultas que maneja tu base de datos con regularidad. Analiza estas consultas de forma periódica para recomendar índices nuevos que pueden aumentar el rendimiento de las consultas.
Puedes ver y consultar sus recomendaciones como una tabla o solicitar un análisis a pedido y un informe en cualquier momento.
Consulta las recomendaciones del asesor de índices
AlloyDB ejecuta automáticamente el análisis del asesor de índices de forma periódica. Puedes leer sus resultados a través de dos vistas de tablas ubicadas en cada una de tus bases de datos:
google_db_advisor_recommended_indexes
enumera los índices nuevos recomendados para su base de datos. También incluye estimaciones del almacenamiento requerido para cada índice y la cantidad de consultas que puede afectar cada índice.google_db_advisor_workload_report
muestra cada búsqueda para la que el asesor recomienda uno o más índices nuevos. Cada fila resume las recomendaciones para la consulta relevante.
Por ejemplo, para ver los resultados del análisis de recomendaciones de índices más reciente, con formato de tabla, ejecuta esta consulta:
SELECT * FROM google_db_advisor_recommended_indexes;
Si el análisis más reciente del asesor de índices no encuentra recomendaciones, esta consulta muestra una tabla sin filas.
Como todos estos informes existen como vistas de bases de datos ordinarias, puedes escribir consultas que filtren o presenten información de la forma que desees. Por ejemplo, para ver un informe que combine los índices recomendados con su consulta asociada completa, une las vistas google_db_advisor_workload_report
y google_db_advisor_workload_statements
en sus respectivas columnas query_id
:
SELECT DISTINCT recommended_indexes, query
FROM google_db_advisor_workload_report r, google_db_advisor_workload_statements s
WHERE r.query_id = s.query_id;
Solicita un análisis de índices de forma manual
En lugar de esperar al próximo análisis programado del asesor de índice, puedes solicitar que AlloyDB ejecute un análisis de inmediato y muestre su informe. Para ello, ejecuta esta función de SQL:
SELECT * FROM google_db_advisor_recommend_indexes();
Una vez finalizado el análisis, AlloyDB muestra un informe con formato de tabla con la descripción y las necesidades de almacenamiento estimadas de los índices recomendados. Si el análisis no encuentra índices nuevos para recomendar, la vista no contiene filas.
Ten en cuenta que el rol del usuario de PostgreSQL que ejecuta este comando puede afectar las recomendaciones que se muestran. Si postgres
o otro usuario con el rol alloydbsuperuser
ejecuta esta consulta, AlloyDB muestra todas las recomendaciones actuales del asesor de índices. De lo contrario, AlloyDB limita su visualización a las recomendaciones de índice en función de las consultas emitidas por el usuario actual de la base de datos.
Aplica las recomendaciones del asesor de índices
La columna index
de la vista google_db_advisor_recommended_indexes
contiene, en cada fila, una instrucción DDL CREATE INDEX
completa de PostgreSQL para generar el índice recomendado en esa fila.
Para aplicar la recomendación de esa fila, ejecuta esa sentencia DDL, exactamente como se presenta. Esto incluye copiarlo en el portapapeles y pegarlo en una instrucción psql
.
Por ejemplo, considera este resultado de la ejecución manual de un análisis mediante la consulta descrita en la sección anterior:
index | estimated_storage_size_in_mb
--------------------------------------------+------------------------------
CREATE INDEX ON "School"."Students"("age") | 3
(1 row)
Este informe contiene una sola recomendación: agregar un nuevo índice de una sola columna en la columna age
de la tabla Students
del esquema School
. Para aplicar esta recomendación, ingresa una consulta de DDL exactamente como se representa en el informe:
CREATE INDEX ON "School"."Students"("age");
Visualiza las consultas con seguimiento del asesor de índices
La vista google_db_advisor_workload_statements
contiene una lista de todas las consultas a las que realizó el asesor de índices, además de los metadatos importantes para cada una, como las siguientes métricas:
- La cantidad de veces que la instancia ejecutó esta consulta
- El tiempo total que la instancia dedica a procesar estas consultas
- El ID del usuario de la base de datos que ejecuta estas consultas
Borra las consultas con seguimiento del asesor de índices
Para restablecer el comportamiento del asesor de índices en una instancia, borra las consultas con seguimiento. Para ello, ejecuta esta función de SQL:
SELECT google_db_advisor_reset();
AlloyDB vacía de inmediato la colección de consultas con seguimiento del asesor de índices.
Configura el asesor de índices
Si bien el asesor de índices está diseñado para funcionar en la mayoría de los casos de uso con su configuración predeterminada, puedes ajustar su comportamiento mediante la configuración de varias marcas de base de datos. Para obtener más información, consulta la página de referencia Marcas de asesor de índices.