Utilice el asesor de índices

Esta página describe el asesor de índices de Cloud SQL para PostgreSQL y cómo puede ver y aplicar sus recomendaciones de índices.

Cloud SQL para PostgreSQL ofrece un asesor de índices totalmente administrado que rastrea las consultas que su base de datos procesa regularmente. El asesor de índices analiza periódicamente estas consultas para recomendar nuevos índices que mejoren el rendimiento de las consultas. El asesor de índices le permite detectar y solucionar problemas de rendimiento en sistemas y consultas.

¿Cómo funciona el asesor de índices?

El asesor de índices le ayuda a mejorar el procesamiento de consultas haciendo lo siguiente:

  • Recomiende un conjunto de índices con comandos SQL para crear índices.
  • Proporciona datos para ayudarlo a evaluar los índices recomendados, por ejemplo, el tamaño de almacenamiento estimado y el impacto de los índices en una consulta.
El asesor de índices almacena y muestra el comando CREATE INDEX , que contiene el nombre de la base de datos, el nombre del esquema, el nombre de la tabla y los nombres de las columnas. Las consultas rastreadas son todas consultas normalizadas sin literales.

Las recomendaciones de índice están cifradas en reposo.

Limitaciones

El asesor de índices de Cloud SQL para PostgreSQL tiene las siguientes limitaciones:

  • El asesor de índices solo proporciona recomendaciones CREATE INDEX .
  • El asesor de índices no admite instancias con las siguientes configuraciones:
    • Instancias de la edición Cloud SQL Enterprise
    • Leer instancias de réplica

Antes de empezar

Para obtener recomendaciones del asesor de índices, debe usar la edición Cloud SQL Enterprise Plus y habilitar Query Insights para la edición Cloud SQL Enterprise Plus para su instancia de Cloud SQL.

Roles y permisos necesarios

Para obtener los permisos necesarios para obtener recomendaciones del asesor de índices, solicite a su administrador que le otorgue el rol de IAM " Visor de Cloud SQL" ( roles/cloudsql.viewer ) en el proyecto que aloja la instancia de Cloud SQL. Para obtener más información sobre la concesión de roles, consulte "Administrar el acceso a proyectos, carpetas y organizaciones" .

Este rol predefinido contiene los permisos necesarios para obtener recomendaciones del asesor de índices. Para ver los permisos exactos necesarios, expanda la sección "Permisos requeridos" :

Permisos necesarios

Se requieren los siguientes permisos para obtener recomendaciones del asesor de índices:

  • databaseinsights.recommendations.query
  • databaseinsights.resourceRecommendations.query

También es posible que puedas obtener estos permisos con roles personalizados u otros roles predefinidos .

Habilitar recomendaciones del asesor de índices

Para habilitar las recomendaciones del asesor de índices, haga lo siguiente:

  1. En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .

    Ir a Instancias de Cloud SQL

    .
  2. Para abrir la página Descripción general de una instancia, haga clic en el nombre de la instancia.
  3. En el mosaico Configuración , haga clic en Editar configuración .
  4. En la sección Personaliza tu instancia , expande Información de consultas .
  5. Asegúrese de que la opción Habilitar información de consultas esté habilitada.
  6. Si aún no está seleccionado, seleccione Habilitar funciones Enterprise Plus .
  7. Seleccione Habilitar asesor de índices .
  8. Haga clic en Guardar .

Desactivar las recomendaciones del asesor de índices

Para deshabilitar las recomendaciones del asesor de índices, haga lo siguiente:

  1. En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .

    Ir a Instancias de Cloud SQL

  2. Para abrir la página Descripción general de una instancia, haga clic en el nombre de la instancia.
  3. En el mosaico Configuración , haga clic en Editar configuración .
  4. En la sección Personaliza tu instancia , expande Información de consultas .
  5. Desmarque la casilla de verificación Habilitar asesor de índice .
  6. Haga clic en Guardar .

Ver recomendaciones del asesor de índices

Cloud SQL ejecuta automáticamente el análisis del asesor de índices periódicamente. Para ver las recomendaciones del asesor de índices, utilice el panel de información de consultas. También puede ver y consultar las recomendaciones del asesor de índices en una tabla o solicitar un análisis e informe a demanda en cualquier momento.

Ver y filtrar recomendaciones en el panel de información de consultas

  1. En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .

    Ir a Instancias de Cloud SQL

  2. Para abrir la página Descripción general de una instancia, haga clic en el nombre de la instancia.
  3. Haga clic en Información de consultas .
  4. Las recomendaciones del asesor de índices se muestran en la columna Recomendación de la sección Consultas y etiquetas principales .
  5. Opcional: para ver solo las consultas con recomendaciones CREATE INDEX , agregue un filtro para Recomendación: Crear índices .

Ver recomendaciones para una consulta

Para ver las recomendaciones de índice para una consulta específica, siga estos pasos:

  1. En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .

    Ir a Instancias de Cloud SQL

  2. Para abrir la página Descripción general de una instancia, haga clic en el nombre de la instancia.
  3. Haga clic en Información de consultas .
  4. En la sección Consultas y etiquetas principales , haga clic en Consultas .
  5. Para obtener detalles de recomendación para una consulta, realice una de las siguientes acciones:
    • Haga clic en una consulta para obtener más información sobre las recomendaciones para la consulta seleccionada, incluida la siguiente información:
      • Impacto en el rendimiento (alto, medio y bajo): la velocidad de consulta estimada después de crear todos los índices recomendados.
      • Recomendaciones : Crear recomendaciones de índice.
      • Tablas afectadas : la cantidad de tablas que se verán afectadas cuando se creen índices.
      • Almacenamiento adicional estimado necesario : el tamaño de almacenamiento estimado necesario para crear todos los índices recomendados.
      • Número de consultas afectadas : El número total de consultas en la carga de trabajo afectadas por las recomendaciones del índice. Un índice puede beneficiar a varias consultas.
    • Haga clic en Crear índices para una consulta específica para obtener recomendaciones detalladas sobre la creación de índices para mejorar el rendimiento de la consulta.

Ver recomendaciones como una vista de tabla de base de datos

Puede leer sus resultados a través de las siguientes vistas de tabla ubicadas en cada una de sus bases de datos:

  • google_db_advisor_recommended_indexes : enumera los nuevos índices recomendados para cada base de datos. También incluye estimaciones del almacenamiento necesario para cada índice y el número de consultas que puede afectar.

  • google_db_advisor_workload_report : enumera cada consulta para la que el asesor recomienda uno o más índices nuevos. Cada fila resume las recomendaciones para la consulta correspondiente.

Por ejemplo, para ver los resultados del análisis de recomendación de índice más reciente, formateado como tabla, ejecute 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 devuelve una tabla sin filas.

Dado que todos estos informes existen como vistas de base de datos comunes, puede crear consultas que filtren o presenten esta información. Por ejemplo, para ver un informe que empareje los índices recomendados con su consulta asociada completa, combine 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, puede solicitar que Cloud SQL para PostgreSQL ejecute un análisis inmediatamente y muestre su informe. En Cloud SQL para PostgreSQL, debe esperar al menos 15 minutos después de habilitar el asesor de índices para ejecutar un análisis manual. Para ello, ejecute esta función 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 que incluye la descripción y las necesidades de almacenamiento estimadas de los índices recomendados. Si el análisis no encuentra nuevos índices para recomendar, la vista no contiene filas.

Tenga en cuenta que el rol de usuario que ejecuta este comando puede afectar las recomendaciones mostradas. Cloud SQL para PostgreSQL limita su visualización a las recomendaciones de índice basadas en las consultas realizadas por el usuario actual de la base de datos.

Crear índices recomendados

Puede crear índices recomendados desde el panel de información de consultas o desde una vista de tabla de base de datos.

Para crear un índice recomendado mediante el panel de información de consultas, haga lo siguiente:

  1. En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .

    Ir a Instancias de Cloud SQL

  2. Para abrir la página Descripción general de una instancia, haga clic en el nombre de la instancia.
  3. Haga clic en Información de consultas .
  4. En la tabla Dimensiones principales por carga de base de datos , haga clic en Consultas .
  5. Haga clic en Crear índices para una consulta específica.
  6. Haga clic en "Copiar todos los comandos de índice" . Los comandos CREATE INDEX se copian al portapapeles.
  7. Conéctese a la instancia principal en la línea de comando.
  8. Para crear los índices recomendados, ejecute los comandos que se copiaron en su portapapeles, por ejemplo:

    CREATE INDEX ON "public"."demo_order" ("customer_id");

La columna index de la vista google_db_advisor_recommended_indexes contiene, en cada fila, una declaración DDL CREATE INDEX de PostgreSQL completa para generar el índice recomendado en esa fila.

Para aplicar la recomendación de esa fila, ejecute la sentencia DDL tal como se presenta. Esto incluye copiarla al portapapeles y pegarla en un prompt psql .

Por ejemplo, considere este resultado de ejecutar manualmente un análisis, utilizando 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 índice de una sola columna a la columna age de la tabla " Students " del esquema de School . Para aplicar esta recomendación, introduzca una consulta DDL como la que se muestra en el informe:

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

Ver consultas impactadas

  1. En el Google Cloud consola, vaya a la página Instancias de Cloud SQL .

    Ir a Instancias de Cloud SQL

  2. Para abrir la página Descripción general de una instancia, haga clic en el nombre de la instancia.
  3. Haga clic en Información de consultas .
  4. En la tabla Dimensiones principales por carga de base de datos , haga clic en Consultas .
  5. Haga clic en Crear índices para una consulta específica.
  6. Haga clic en Mostrar consultas afectadas .
  7. Haga clic en una consulta para obtener detalles sobre la consulta afectada.

Ver consultas rastreadas del asesor de índices

La vista google_db_advisor_workload_statements contiene una lista de todas las consultas que el asesor de índice ha rastreado, así como metadatos importantes para cada una, como las siguientes métricas:

  • El número de veces que la instancia ejecutó cada consulta
  • El tiempo total que la instancia pasa procesando estas consultas
  • El ID del usuario de la base de datos que ejecuta estas consultas

Borrar las consultas rastreadas del asesor de índices

Puede restablecer el comportamiento del asesor de índices en una instancia borrando sus consultas rastreadas. Para ello, ejecute esta función SQL:

SELECT google_db_advisor_reset();

Cloud SQL para PostgreSQL vacía inmediatamente la colección de consultas rastreadas del asesor de índice.

¿Qué sigue?