En esta página se 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 gestionado que monitoriza las consultas que gestiona tu base de datos con regularidad. Periódicamente, el asesor de indexación analiza estas consultas para recomendar nuevos índices que puedan mejorar el rendimiento de las consultas. Index Advisor te permite detectar y solucionar problemas de rendimiento con sistemas y consultas.
¿Cómo funciona el asesor de índices?
El asesor de indexación te ayuda a mejorar el procesamiento de las consultas de las siguientes formas:
- Recomienda un conjunto de índices con comandos SQL para crear índices.
- Proporciona datos para ayudarte a evaluar los índices recomendados, como 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 consultas monitorizadas
son consultas normalizadas en las que se han eliminado todos los literales.
Las recomendaciones de índices se cifran en reposo.
Limitaciones
El asesor de índices de Cloud SQL para PostgreSQL tiene las siguientes limitaciones:
- El asesor de índices solo proporciona
CREATE INDEX
recomendaciones. - El asesor de índices no admite instancias con las siguientes configuraciones:
- Instancias de la edición Enterprise de Cloud SQL
- Instancias de réplica de lectura
Antes de empezar
Para obtener recomendaciones del Asesor de índices, debes usar la edición Enterprise Plus de Cloud SQL y habilitar Información útil sobre las consultas para la edición Enterprise Plus de Cloud SQL en tu instancia de Cloud SQL.
Roles y permisos necesarios
Para obtener los permisos que necesitas para obtener recomendaciones del Asesor de índices,
pide a tu administrador que te conceda el rol de gestión de identidades y accesos
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 conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
Este rol predefinido contiene los permisos necesarios para obtener recomendaciones de Index Advisor. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:
Permisos obligatorios
Para obtener recomendaciones del asesor de índices, se necesitan los siguientes permisos:
-
databaseinsights.recommendations.query
-
databaseinsights.resourceRecommendations.query
También puedes obtener estos permisos con roles personalizados u otros roles predefinidos.
Habilitar las recomendaciones del asesor de índices
Para habilitar las recomendaciones del asesor de índices, sigue estos pasos:
-
En la Google Cloud consola, ve a la página Instancias de Cloud SQL.
. - Para abrir la página Overview (Resumen) de una instancia, haz clic en su nombre. .
- En la tarjeta Configuración, haz clic en Editar configuración.
- En la sección Personalizar tu instancia, amplía Estadísticas de consultas.
- Asegúrate de que la opción Habilitar Información valiosa sobre las consultas esté habilitada.
- Si aún no lo has hecho, selecciona Habilitar funciones de Enterprise Plus.
- Selecciona Habilitar asesor de índices.
- Haz clic en Guardar.
Inhabilitar las recomendaciones del Asesor de índices
Para inhabilitar las recomendaciones del asesor de índices, sigue estos pasos:
-
En la Google Cloud consola, ve a la página Instancias de Cloud SQL.
- Para abrir la página Overview (Resumen) de una instancia, haz clic en su nombre.
- En la tarjeta Configuración, haz clic en Editar configuración.
- En la sección Personalizar tu instancia, amplía Estadísticas de consultas.
- Desmarca la casilla Habilitar asesor de índices.
- Haz clic en Guardar.
Ver recomendaciones de Index Advisor
Cloud SQL ejecuta automáticamente el análisis del asesor de índices periódicamente. Para ver las recomendaciones del asesor de índices, usa el panel de control Información útil sobre las consultas. También puede ver y consultar las recomendaciones del asesor de índices en forma de tabla o solicitar un análisis y un informe bajo demanda en cualquier momento.
Ver y filtrar recomendaciones en el panel de control Estadísticas de las consultas
-
En la Google Cloud consola, ve a la página Instancias de Cloud SQL.
- Para abrir la página Overview (Resumen) de una instancia, haz clic en su nombre.
- Haz clic en Estadísticas de las consultas.
- Las recomendaciones de Index Advisor 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
, añade un filtro de Recomendación: crear índices.
Ver recomendaciones para una consulta
Para ver las recomendaciones de índices de una consulta específica, sigue estos pasos:
-
En la Google Cloud consola, ve a la página Instancias de Cloud SQL.
- Para abrir la página Overview (Resumen) de una instancia, haz clic en su nombre.
- Haz clic en Estadísticas de las consultas.
- En la sección Consultas y etiquetas principales, haga clic en Consultas.
- Para obtener los detalles de las recomendaciones de una consulta, haga lo siguiente:
- Haz clic en una consulta para obtener más información sobre las recomendaciones de 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: crea recomendaciones de índices.
- Tablas afectadas: el número de tablas que se verán afectadas cuando se creen los í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 de la carga de trabajo afectadas por las recomendaciones de índices. Un índice puede beneficiar a varias consultas.
- Haz clic en Crear índices en una consulta específica para ver recomendaciones detalladas sobre cómo crear índices que mejoren el rendimiento de las consultas.
- Haz clic en una consulta para obtener más información sobre las recomendaciones de la consulta seleccionada, incluida la siguiente información:
Ver las recomendaciones como una vista de tabla de base de datos
Puedes consultar los resultados en las siguientes vistas de tabla, que se encuentran en cada una de tus bases de datos:google_db_advisor_recommended_indexes
: muestra 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 cada índice.google_db_advisor_workload_report
: muestra una lista de 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, puede escribir consultas que filtren o presenten esta información. 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 solicitar que Cloud SQL para PostgreSQL ejecute un análisis inmediatamente y muestre su informe. En el caso de 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 SQL:
SELECT * FROM google_db_advisor_recommend_indexes();
Cuando finalice el análisis, Cloud SQL para PostgreSQL mostrará 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 que ejecuta este comando puede afectar a las recomendaciones que se muestran. Cloud SQL para PostgreSQL limita la visualización a las recomendaciones de índices basadas en las consultas emitidas por el usuario de la base de datos actual.
Crear índices recomendados
Puede crear índices recomendados desde el panel de control Información útil sobre las consultas o desde una vista de tabla de base de datos.
Crear un índice recomendado con el panel de control Información útil sobre las consultas
Para crear un índice recomendado con el panel de control Información útil sobre las consultas, sigue estos pasos:
-
En la Google Cloud consola, ve a la página Instancias de Cloud SQL.
- Para abrir la página Overview (Resumen) de una instancia, haz clic en su nombre.
- Haz clic en Estadísticas de las consultas.
- En la tabla Principales dimensiones por carga de la base de datos, haga clic en Consultas.
- Haga clic en Crear índices para una consulta específica.
- Haz clic en Copiar todos los comandos de í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 han copiado en el portapapeles. Por ejemplo:
CREATE INDEX ON "public"."demo_order" ("customer_id");
Crear 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 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 índice de una sola columna en la columna age
del esquema School
de la tabla Students
. Para aplicar este consejo, introduzca una consulta DDL como se representa en el informe:
CREATE INDEX ON "School"."Students"("age");
Ver consultas afectadas
-
En la Google Cloud consola, ve a la página Instancias de Cloud SQL.
- Para abrir la página Overview (Resumen) de una instancia, haz clic en su nombre.
- Haz clic en Estadísticas de las consultas.
- En la tabla Principales dimensiones por carga de la base de datos, haga clic en Consultas.
- Haz clic en Crear índices para una consulta específica.
- Haga clic en Mostrar consultas afectadas.
- Haz clic en una consulta para obtener información detallada sobre ella.
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 cada 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();
Cloud SQL para PostgreSQL vacía inmediatamente la colección de consultas monitorizadas del asesor de índices.