AlloyDB para PostgreSQL ofrece un asesor de índices que monitoriza las consultas que gestiona tu base de datos con regularidad. Analiza periódicamente estas consultas para recomendar nuevos índices que puedan aumentar su rendimiento.
Puedes ver y consultar sus recomendaciones en forma de tabla, o solicitar un análisis e informe bajo demanda en cualquier momento.
Ver las recomendaciones de Index Advisor
AlloyDB ejecuta automáticamente el análisis del asesor de índices periódicamente. Puedes leer sus resultados en dos vistas de tabla ubicadas en cada una de tus bases de datos:
google_db_advisor_recommended_indexes
muestra una lista con los nuevos índices recomendados para su base de datos. También incluye estimaciones del almacenamiento necesario para cada índice y el número de consultas que puede afectar cada índice.google_db_advisor_workload_report
muestra cada consulta para la que el asesor recomienda uno o varios índices nuevos. En cada fila se resumen las recomendaciones de la consulta correspondiente.
Por ejemplo, para ver los resultados del análisis de recomendaciones de índice 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 ninguna recomendación, esta consulta devuelve una tabla sin filas.
Como todos estos informes son vistas de bases de datos normales, puedes escribir consultas que filtren o presenten la información de la forma que quieras. Por ejemplo, para ver un informe que empareje 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;
Solicitar manualmente un análisis de índice
En lugar de esperar al próximo análisis programado del asesor de índices, puedes pedirle a AlloyDB que ejecute un análisis inmediatamente y muestre su informe. Para ello, ejecuta esta función SQL:
SELECT * FROM google_db_advisor_recommend_indexes();
Una vez finalizado el análisis, AlloyDB muestra un informe en formato de tabla con la descripción y las necesidades de almacenamiento estimadas de los índices recomendados. Si el análisis no encuentra ningún índice nuevo que recomendar, la vista no contendrá ninguna fila.
Ten en cuenta que el rol de usuario de PostgreSQL
que ejecuta este comando puede afectar a las recomendaciones que se muestran. Si postgres
u otro usuario con el rol alloydbsuperuser
ejecuta esta consulta, AlloyDB mostrará todas las recomendaciones actuales del asesor de índices. De lo contrario, AlloyDB limita su visualización a las recomendaciones de índices basadas en las consultas emitidas por el usuario de la base de datos actual.
Aplicar las recomendaciones del asesor de índices
La columna index
de la vista google_db_advisor_recommended_indexes
contiene, en cada fila, una instrucción CREATE INDEX
DDL de PostgreSQL completa para generar el índice recomendado en esa fila.
Para aplicar la recomendación de esa fila, ejecuta la instrucción DDL exactamente como se indica. Esto incluye copiarla en el portapapeles y pegarla en una petición de psql
.
Por ejemplo, echa un vistazo a este resultado de un análisis ejecutado manualmente con 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: añadir un nuevo índice de una sola columna en la columna age
de la tabla Students
del esquema School
. Para aplicar este consejo, introduce una consulta DDL exactamente como se representa en el informe:
CREATE INDEX ON "School"."Students"("age");
Ver las consultas monitorizadas del asesor de índices
La vista google_db_advisor_workload_statements
contiene una lista de todas las consultas que ha monitorizado el asesor de índices, así como metadatos importantes de cada una, como las siguientes métricas:
- El número de veces que la instancia ha ejecutado esta consulta.
- Tiempo total que la instancia dedica a procesar estas consultas
- El ID del usuario de la base de datos que ejecuta estas consultas
Borrar las consultas monitorizadas del asesor de índices
Puedes restablecer el comportamiento del asesor de índices en una instancia borrando las consultas de las que hace un seguimiento. Para ello, ejecuta esta función SQL:
SELECT google_db_advisor_reset();
AlloyDB vacía inmediatamente la colección de consultas monitorizadas de Index Advisor.
Configurar el asesor de índices
Aunque el asesor de índices se ha diseñado para que funcione en la mayoría de los casos prácticos con su configuración predeterminada, puedes ajustar su comportamiento configurando varias marcas de la base de datos. Para obtener más información, consulta la página de referencia Index advisor flags (Indicadores de asesoramiento de índices).