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.
Antes de empezar
Antes de usar el asesor de índices, asegúrate de que cumples los siguientes requisitos.
Habilita las extensiones necesarias
En la Google Cloud consola, ve a la página Clusters.
Haga clic en un clúster de la columna Nombre del recurso.
En la página Estadísticas de las consultas, haga clic en Editar configuración de la consulta.
Haz clic en Habilitar asesor de índices.
Para activar las recomendaciones de índices de búsqueda de vectores para los índices de Scalable Nearest Neighbors (ScaNN), habilita la marca
scann.enable_preview_features
(Vista previa). Para obtener más información, consulta Configurar las marcas de la base de datos de una instancia.
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.google_db_advisor.enable_vector_index_advisor
permite que la extensióngoogle_db_advisor
recomiende índices para las consultas de vectores. También puedes activar esta marca con la marcascann.enable_preview_features
(en Vista previa).
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, puede escribir consultas que filtren o presenten la información de la forma que quiera. 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 de SQL:
SELECT google_db_advisor_reset();
AlloyDB vacía inmediatamente la colección de consultas monitorizadas del asesor de índices.
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 Alertas del asesor de indexación.