En esta página, se describe el asesor de índices 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 completamente administrado que realiza un seguimiento de las consultas que maneja tu base de datos con regularidad. El asesor de índices analiza estas consultas de forma periódica para recomendar índices nuevos que pueden mejorar el rendimiento de las consultas. El asesor de índices te permite detectar y solucionar problemas de rendimiento con los sistemas y las consultas.
¿Cómo funciona el asesor de índices?
El asesor de índices te ayuda a mejorar el procesamiento de consultas mediante las siguientes acciones:
- Recomienda un conjunto de índices con comandos de SQL para crear índices.
- Proporcionar datos para ayudarte a evaluar los índices recomendados, por ejemplo, el tamaño de almacenamiento estimado y el impacto de los índices en una consulta
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 búsquedas rastreadas son todas las búsquedas normalizadas con todos los literales quitados.
Las recomendaciones de índice se encriptan en reposo.
Limitaciones
El asesor de índice de Cloud SQL para PostgreSQL tiene las siguientes limitaciones:
- El asesor de índices solo proporciona recomendaciones de
CREATE INDEX
. - El asesor de índices no admite instancias con los siguientes parámetros de configuración:
- Instancias de Cloud SQL Enterprise Edition
- Instancias de réplica de lectura
Antes de comenzar
Para obtener recomendaciones del asesor de índices, debes usar la edición Cloud SQL Enterprise Plus y habilitar Query Insights para la edición Cloud SQL Enterprise Plus en tu instancia de Cloud SQL.
Roles y permisos requeridos
Para obtener los permisos que necesitas para obtener recomendaciones del asesor de índices,
pídele a tu administrador que te otorgue el
rol de IAM de lector de Cloud SQL (roles/cloudsql.viewer
)
en el proyecto que aloja la instancia de Cloud SQL.
Para obtener más información sobre cómo otorgar roles, consulta Administra 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 que son necesarios, expande 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 puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.
Habilita las recomendaciones del asesor de índices
Para habilitar las recomendaciones del asesor de índices, haz lo siguiente:
-
En la Google Cloud consola, ve a la página Instancias de Cloud SQL.
. - Para abrir la página de Descripción general de una instancia, haz clic en su nombre. .
- En el campo Configuración, haz clic en Editar configuración.
- En la sección Personaliza tu instancia, expande Estadísticas de consultas.
- Asegúrate de que la opción Habilitar Estadísticas de consultas esté habilitada.
- Si aún no está seleccionada, elige Habilitar funciones de Enterprise Plus.
- Selecciona Habilitar el asesor de índices.
- Haz clic en Guardar.
Inhabilita las recomendaciones del asesor de índices
Para inhabilitar las recomendaciones del asesor de índices, haz lo siguiente:
-
En la Google Cloud consola, ve a la página Instancias de Cloud SQL.
- Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
- En el campo Configuración, haz clic en Editar configuración.
- En la sección Personaliza tu instancia, expande Estadísticas de consultas.
- Desmarca la casilla de verificación Habilitar Asesor de índices.
- Haz clic en Guardar.
Cómo ver las recomendaciones del asesor de índices
Cloud SQL ejecuta automáticamente el análisis del asesor de índices de forma periódica. Para ver las recomendaciones del asesor de índices, usa el panel de Estadísticas de consultas. También 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.
Visualiza y filtra las recomendaciones en el panel de Estadísticas de consultas
-
En la Google Cloud consola, ve a la página Instancias de Cloud SQL.
- Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
- Haz clic en Estadísticas de consultas.
- Las recomendaciones del asesor de índice se muestran en la columna Recomendación de la sección Consultas y etiquetas principales.
- Opcional: Para ver solo las consultas con recomendaciones de
CREATE INDEX
, agrega un filtro para Recomendación: Crea índices.
Visualiza las recomendaciones para una consulta
Para ver las recomendaciones de índices de una búsqueda específica, sigue estos pasos:
-
En la Google Cloud consola, ve a la página Instancias de Cloud SQL.
- Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
- Haz clic en Estadísticas de consultas.
- En la sección Consultas y etiquetas principales, haz clic en Consultas.
- Para obtener detalles de las recomendaciones sobre una búsqueda, realiza una de las siguientes acciones:
- Haz clic en una consulta para obtener más información acerca de las recomendaciones para la consulta seleccionada, incluida la siguiente información:
- Impacto en el rendimiento (alto, medio y bajo): La velocidad estimada de la consulta después de que se crean todos los índices recomendados.
- Recomendaciones: Crea recomendaciones de índices.
- Tablas afectadas: La cantidad de tablas que se verán afectadas cuando se creen los índices.
- Almacenamiento estimado adicional necesario: El tamaño de almacenamiento estimado necesario para crear todos los índices recomendados.
- Cantidad de consultas afectadas: La cantidad total de consultas en la carga de trabajo afectadas por las recomendaciones de índices. Un índice puede beneficiar a varias búsquedas.
- Haz clic en Crear índices para una consulta específica para obtener recomendaciones detalladas sobre la creación de índices para mejorar el rendimiento de las consultas.
- Haz clic en una consulta para obtener más información acerca de las recomendaciones para la consulta seleccionada, incluida la siguiente información:
Cómo ver las recomendaciones como una vista de tabla de base de datos
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.
Crea índices recomendados
Puedes crear índices recomendados desde el panel de Estadísticas de consultas o desde una vista de tabla de la base de datos.
Crea un índice recomendado con el panel de estadísticas de consultas
Para crear un índice recomendado con el panel de estadísticas de consultas, haz lo siguiente:
-
En la Google Cloud consola, ve a la página Instancias de Cloud SQL.
- Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
- Haz clic en Estadísticas de consultas.
- En la tabla Dimensiones principales por carga de base de datos, haz clic en Consultas.
- Haz clic en Crear índices para una consulta específica.
- Haz clic en Copiar todos los comandos del índice. Los comandos
CREATE INDEX
se copian en el portapapeles. - Conéctate a la instancia principal en la línea de comandos.
Para crear los índices recomendados, ejecuta los comandos que se copiaron en el portapapeles, por ejemplo:
CREATE INDEX ON "public"."demo_order" ("customer_id");
Crea un índice recomendado con una vista de tabla de base de datos
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 afectadas
-
En la Google Cloud consola, ve a la página Instancias de Cloud SQL.
- Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
- Haz clic en Estadísticas de consultas.
- En la tabla Dimensiones principales por carga de base de datos, haz clic en Consultas.
- Haz clic en Crear índices para una consulta específica.
- Haz clic en Mostrar consultas afectadas.
- Haz clic en una consulta para obtener detalles sobre la consulta afectada.
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ó 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.