Usa el asesor de índices

En esta página, se describe el asesor de índice de Cloud SQL para PostgreSQL y cómo puedes ver y aplicar sus recomendaciones de índices.

Cloud SQL para PostgreSQL ofrece un asesor de índices que realiza un seguimiento de las consultas que maneja tu base de datos. Analiza estas consultas de forma periódica para recomendar índices nuevos que pueden aumentar el rendimiento de las consultas.

Puedes ver y consultar las recomendaciones del asesor de índices como una tabla o solicitar un análisis a pedido y un informe en cualquier momento.

Habilita las recomendaciones del asesor de índices

Para habilitar las recomendaciones del asesor de índices, configura Gemini en bases de datos.

Inhabilita las recomendaciones del asesor de índices

Para inhabilitar las recomendaciones de asesor de índice, quita la marca cloudsql.enable_index_advisor de tu instancia de Cloud SQL para PostgreSQL. Para obtener más información sobre cómo quitar una marca de tu instancia, consulta Configura marcas de base de datos.

Consulta las recomendaciones del asesor de índices

Cloud SQL para PostgreSQL ejecuta de forma automática el análisis del asesor de índice de forma periódica.

Puedes leer sus resultados a través de las siguientes vistas de tablas ubicadas en cada una de tus bases de datos:

  • google_db_advisor_recommended_indexes: enumera los índices nuevos recomendados para cada 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 esta información. 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 Cloud SQL para PostgreSQL ejecute un análisis de inmediato y muestre su informe. En Cloud SQL para PostgreSQL, debes esperar al menos 15 minutos después de habilitar el asesor de índices para ejecutar un análisis manual. Para ello, ejecuta esta función de SQL:

SELECT * FROM google_db_advisor_recommend_indexes();

Una vez finalizado el análisis, Cloud SQL para PostgreSQL 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 que ejecuta este comando puede afectar las recomendaciones que se muestran. Cloud SQL para PostgreSQL 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 í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 como se representa en el informe:

CREATE INDEX ON "School"."Students"("age");

Visualiza las consultas con seguimiento del asesor de índice

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ó cada 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();

Cloud SQL para PostgreSQL vacía la colección de consultas con seguimiento del asesor de índices de inmediato.