Mejora el rendimiento de las consultas con las Estadísticas de consultas mejoradas para AlloyDB

En esta página, se describe cómo usar las estadísticas de consultas mejoradas para detectar y analizar problemas de rendimiento de las consultas en tiempo casi real en instancias principales y de grupos de lectura. Para obtener una descripción general de las Estadísticas de consultas mejoradas, consulta Descripción general de las Estadísticas de consultas mejoradas.

Para obtener información sobre cómo usar las Estadísticas de consultas estándar, consulta Usa las Estadísticas de consultas para mejorar el rendimiento de las consultas.

Puedes usar la asistencia de Gemini in Databases para supervisar y solucionar problemas de tus recursos de AlloyDB. Para obtener más información, consulta Supervisa y soluciona problemas con la asistencia de Gemini.

Antes de comenzar

Para acceder al panel de Estadísticas de consultas, habilita el acceso a AlloyDB para PostgreSQL en tu proyecto de Google Cloud.

Roles obligatorios

Para usar las Estadísticas de consultas mejoradas, necesitas permisos para lo siguiente:

  • Para acceder a las Estadísticas de consultas mejoradas, debes tener permisos para acceder al panel de Estadísticas de consultas de AlloyDB.
  • Para editar la configuración de las Estadísticas de consultas mejoradas, necesitas permisos para actualizar las instancias de AlloyDB.

Para obtener estos permisos, pídele a tu administrador que te otorgue uno de los siguientes roles:

  • Visor básico (roles/viewer)
  • Visualizador de Database Insights (roles/databaseinsights.viewer)

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso.

Habilita las estadísticas de consultas mejoradas

  1. Configurar Gemini en bases de datos.

  2. En la consola de Google Cloud, ve a la página Clústeres.

    Ir a los clústeres

  3. En la lista de clústeres e instancias, haz clic en una instancia.

  4. Haz clic en Estadísticas de consultas.

  5. Elige la base de datos y el usuario.

  6. Haz clic en Editar configuración.

  7. Habilita las Estadísticas de consultas mejoradas.

  8. Si proteges tu proyecto de Google Cloud con Controles del servicio de VPC, agrega la API de databaseinsights.googleapis.com al perímetro de servicio como un servicio restringido.

  9. Guarda los cambios. Esto reiniciará tu instancia.

Después de habilitar las estadísticas de consultas mejoradas, puedes editar su configuración.

Edita la configuración de las Estadísticas de consultas mejoradas

  1. En la consola de Google Cloud, ve a la página Clústeres.

    Ir a los clústeres

  2. En la lista de clústeres e instancias, haz clic en una instancia.

  3. Haz clic en Estadísticas de consultas.

  4. Elige la base de datos y el usuario.

  5. Haz clic en Editar configuración y, luego, selecciona o anula la selección de cualquiera de los siguientes parámetros de configuración:

    • Habilita el análisis de eventos de espera. El análisis de eventos de espera puede ayudarte a identificar y resolver problemas de rendimiento en tu base de datos. Un evento de espera es un componente que causa una demora en el procesamiento de una operación relacionada con la consulta.
    • Almacena los comentarios de las búsquedas. Para conocer el contexto de la consulta, revisa los comentarios asociados con cualquier consulta que investigues, como parte de su longitud. No se necesita memoria adicional. Si tus comentarios contienen información sensible, ten en cuenta el acceso de los usuarios.
    • Almacena etiquetas de aplicación. Habilita la función para descubrir qué APIs y rutas de estructura modelo-vista-controlador realizan solicitudes y agrupa esos datos para ejecutar métricas en función de ellos.
    • Personalizar la longitud de las consultas Puedes cambiar el límite predeterminado de las longitudes de las consultas, de 256 bytes hasta 100 KB. Las consultas más largas requieren más memoria. Para cambiar la longitud de las consultas, debes reiniciar la instancia.
    • Habilita los planes de consulta y configura la tasa de muestreo. Los planes de consulta visualizan las operaciones que se usan para completar una muestra de una consulta. La tasa de muestreo determina cuántas muestras de consultas se pueden capturar por minuto en las bases de datos. Las tasas más altas requieren más memoria.
    • Habilita las recomendaciones. Muestra recomendaciones para la creación de índices en la página de estadísticas de consultas de un clúster.
  6. Guarda los cambios.

Detecta y diagnostica problemas de rendimiento de las consultas

Puedes usar las Estadísticas de consultas mejoradas para detectar y diagnosticar problemas de rendimiento. En el panel de estadísticas de consultas mejorado, se muestra la carga de la base de datos, que es una medida del trabajo (en segundos de CPU) que ejecutaron las consultas en la base de datos seleccionada a lo largo del tiempo. Cada consulta en ejecución utiliza o espera recursos. La carga de la base de datos es la proporción de la cantidad de tiempo que tomaron todas las consultas completadas en un período determinado, en tiempo real transcurrido.

Consulta la medición del trabajo realizado por las consultas ejecutadas

El gráfico de carga de la base de datos proporciona la medición del trabajo realizado (en segundos de CPU) por todas las consultas ejecutadas en tu base de datos, segmentadas por la dimensión seleccionada. La carga de la base de datos se divide en los datos de distribución que seleccionas en el menú desplegable del gráfico.

Puedes desglosar la carga de la base de datos por cualquiera de las siguientes dimensiones:

  • Consulta
  • Tipo de evento de espera
  • Evento de espera
  • Base de datos
  • Usuario

Para ver el trabajo completado por las consultas ejecutadas en tu base de datos, sigue estos pasos:

  1. En la consola de Google Cloud, ve a la página Clústeres.

    Ir a los clústeres

  2. En la lista de clústeres e instancias, haz clic en una instancia.

  3. Haz clic en Estadísticas de consultas.

  4. Elige la base de datos y el usuario.

  5. Elige el tiempo de ejecución total para el que deseas mostrar datos, por ejemplo, 1 o 6 horas, o un tiempo personalizado.

  6. En el menú desplegable Carga de la base de datos por tiempo de ejecución, elige la dimensión que deseas investigar. Según la dimensión que elijas, el gráfico mostrará cómo esta contribuye a la carga general de la base de datos. Por ejemplo, si seleccionas la dimensión Eventos de espera en el menú desplegable del gráfico de carga de la base de datos, se mostrará en el gráfico el desglose de todos los eventos de espera que se produjeron durante el período seleccionado para la base de datos y el usuario seleccionados.

    El gráfico de carga de la base de datos muestra datos de los nueve tipos de eventos de espera y los eventos de espera compatibles con PostgreSQL. Según la cantidad de eventos y tipos de espera, se muestran los diez eventos y tipos de espera más importantes. Si hay más de diez eventos de espera, se muestran los nueve principales, y el resto se agrupa en la categoría Otros. Este enfoque también se aplica a otras dimensiones, como Búsquedas, Bases de datos y Usuarios.

Consulta los principales contribuyentes a la carga de la base de datos

Con la tabla Dimensiones principales por carga de base de datos, puedes ver los principales contribuyentes a la carga de la base de datos para el intervalo de tiempo y la dimensión seleccionados en el gráfico Carga de base de datos. Según la dimensión que elijas en la tabla Dimensiones principales por carga de base de datos, puedes encontrar los valores principales del período seleccionado.

  1. En la consola de Google Cloud, ve a la página Clústeres.

    Ir a los clústeres

  2. En la lista de clústeres e instancias, haz clic en una instancia.

  3. Haz clic en Estadísticas de consultas.

  4. Elige la base de datos y el usuario.

  5. Elige el tiempo de ejecución total para el que deseas mostrar datos, por ejemplo, 1 o 6 horas, o un tiempo personalizado.

  6. En la tabla Dimensiones principales por carga de base de datos, puedes hacer clic en cualquiera de los siguientes elementos:

    Dimensión Descripción
    Consultas En la tabla, se muestran las principales consultas normalizadas por tiempo de ejecución total. Para cada consulta, los datos que se muestran en las columnas se enumeran de la siguiente manera:
    • Tiempo de ejecución promedio (ms) Es el tiempo promedio en el que se ejecutará la consulta.
    • Tiempo total de ejecución (ms) Es el tiempo total de ejecución que tarda la consulta específica.
    • Filas mostradas. Es la cantidad promedio de filas recuperadas para la consulta.
    • Cantidad de llamadas. La cantidad de veces que la aplicación llamó a la consulta.
    • %de carga por dimensión del gráfico. El gráfico de píldoras muestra cómo se distribuye la dimensión del gráfico para la consulta específica.
    Tipos de eventos de espera La tabla muestra la lista de los principales tipos de eventos de espera que se produjeron durante el período seleccionado.
    • Tiempo promedio de espera (ms) Es el tiempo promedio que las consultas permanecieron en el tipo de evento de espera específico.
    • Tiempo total de espera (ms). Es el tiempo de ejecución total que las consultas dedicaron al tipo de evento de espera específico.
    • Recuento de tipos de eventos de espera. Es la cantidad de veces que ocurrió un tipo de evento de espera específico en el intervalo de tiempo elegido.
    • %de carga por dimensión del gráfico. El gráfico de píldoras muestra cómo se distribuye la dimensión del gráfico seleccionada en el menú desplegable del gráfico de carga de la base de datos en el tipo de evento de espera específico.
    Eventos de espera La tabla muestra la lista de los eventos de espera principales que se produjeron durante el período seleccionado.
    • Tiempo promedio de espera (ms) Es el tiempo promedio que las consultas permanecieron en el evento de espera específico.
    • Tiempo total de espera (ms). Es el tiempo de ejecución total que las consultas dedicaron al evento de espera específico.
    • Recuento de eventos de espera. Es la cantidad de veces que ocurrió un evento de espera específico en el intervalo de tiempo elegido.
    • %de carga por dimensión del gráfico. El gráfico de píldoras muestra cómo se distribuye la dimensión del gráfico seleccionada en el menú desplegable del gráfico de carga de la base de datos en el evento de espera específico.
    Base de datos En la tabla, se muestra la lista de las bases de datos principales que contribuyeron a la carga durante el período elegido en todas las consultas ejecutadas.
    • Tiempo promedio en la base de datos (ms) Es el tiempo promedio que las consultas pasaron en la base de datos específica.
    • Tiempo total que se usó la base de datos (ms). Es el tiempo de ejecución total que las consultas dedicaron a la base de datos específica.
    • %de carga por dimensión del gráfico. El gráfico de píldoras muestra cómo se distribuye la dimensión del gráfico seleccionada en el menú desplegable del gráfico de carga de la base de datos en la base de datos específica.
    Usuario En la tabla, se muestra la lista de los usuarios principales del período elegido en todas las consultas ejecutadas.
    • Tiempo promedio en el usuario (ms) Es el tiempo promedio que las consultas permanecieron en el usuario específico.
    • Tiempo total que se usó el usuario (ms). Es el tiempo de ejecución total que las consultas dedicaron al usuario específico.
    • %de carga por dimensión del gráfico. El gráfico de píldoras muestra cómo se distribuye la dimensión del gráfico seleccionada en el menú desplegable del gráfico de carga de la base de datos en el usuario específico.

Cómo ver el tiempo de ejecución de la consulta

Las Estadísticas de consultas mejoradas muestran las diez consultas principales que contribuyen a la carga de la base de datos en la tabla Dimensiones principales por carga de base de datos. La consulta principal es la que más contribuyó a la carga de la base de datos para el intervalo de tiempo seleccionado. Las consultas posteriores son un porcentaje del tiempo de ejecución más largo.

Para saber cómo el tiempo de ejecución de un parámetro en la tabla Dimensiones principales por carga de base de datos se ve afectado por los diferentes valores de la dimensión del gráfico seleccionada (consultas, tipos de eventos de espera, eventos de espera, bases de datos y usuarios), sigue estos pasos:

  1. En la consola de Google Cloud, ve a la página Clústeres.

    Ir a los clústeres

  2. En la lista de clústeres e instancias, haz clic en una instancia.

  3. Haz clic en Estadísticas de consultas.

  4. Elige la base de datos y el usuario.

  5. Consulta el % de carga por dimensión del gráfico en la tabla Dimensiones principales por carga de base de datos para saber cómo un parámetro de la tabla se ve afectado por los parámetros del gráfico Carga de la base de datos.

    Por ejemplo, cuando seleccionas Todas las consultas en el gráfico Carga de la base de datos y haces clic en la pestaña Consultas en la tabla Dimensiones principales por carga de base de datos, % de carga por consultas muestra una lista de las consultas que contribuyeron con la mayor carga de la base de datos en la base de datos seleccionada durante el período determinado.

Consulta los detalles del tiempo de ejecución de la consulta

Puedes ver detalles sobre el tiempo de ejecución de la consulta en Más detalles, incluidas las dimensiones que seleccionaste en el gráfico y la tabla de carga de la base de datos, la definición de cada evento de espera y los datos que se encapsulan en la categoría Otros.

Más detalles también muestra detalles de información compleja que no se muestra en ningún otro lugar de la pantalla de detalles de la consulta. Esta información incluye la definición de cada evento de espera.

Para ver los detalles sobre el tiempo de ejecución de la consulta, sigue estos pasos:

  1. En la consola de Google Cloud, ve a la página Clústeres.

    Ir a los clústeres

  2. En la lista de clústeres e instancias, haz clic en una instancia.

  3. Haz clic en Estadísticas de consultas.

  4. Elige la base de datos y el usuario.

  5. En la tabla Dimensiones principales por carga de base de datos, haz clic en Más detalles para ver una consulta.

Las Estadísticas de consultas mejoradas muestran consultas normalizadas ($1, $2, etcétera) para reemplazar los valores constantes literales. Por ejemplo:

UPDATE
  "demo_customer"
SET
  "customer_id" = $1::uuid,
  "name" = $2,
  "address" = $3,
  "rating" = $4,
  "balance" = $5,
  "current_city" = $6,
  "current_location" = $7
WHERE
  "demo_customer"."id" = $8

El valor constante se ignora para que las Estadísticas de consultas mejoradas puedan agregar consultas similares y quitar cualquier información de identificación personal (PII) que la constante pueda mostrar.

Determina la carga de la base de datos para las consultas normalizadas

Para mostrar una medición del tiempo y el uso de recursos por ejecución de consulta (en segundos de CPU) que la consulta normalizada que seleccionaste realizó en la base de datos seleccionada a lo largo del tiempo, sigue estos pasos:

  1. En la consola de Google Cloud, ve a la página Clústeres.

    Ir a los clústeres

  2. En la lista de clústeres e instancias, haz clic en una instancia.

  3. Haz clic en Estadísticas de consultas.

  4. Elige la base de datos y el usuario.

  5. Haz clic en Consultas en el gráfico Carga de la base de datos. Para calcular la carga de la base de datos, el gráfico Carga de la base de datos usa la cantidad de tiempo que tardan las consultas normalizadas que se completan en el límite de minutos en comparación con el tiempo real transcurrido.

En la parte superior del gráfico Carga de la base de datos, se muestran los primeros 10 KB de caracteres de la consulta normalizada, donde se quitan los literales por motivos de agregación y de información de identificación personal (PII).

Para ayudar a determinar la distribución del tiempo transcurrido en cada uno de estos estados, las estadísticas de consultas mejoradas se distribuyen por cargas de consultas normalizadas en eventos de espera y tipos de eventos de espera.

Puedes estudiar la latencia de las consultas con los gráficos de Latencia. La latencia es el tiempo que la búsqueda normalizada tarda en completarse en tiempo real transcurrido. La latencia de las consultas paralelas se mide en tiempo real transcurrido, aunque la carga de la base de datos puede ser mayor para la consulta debido a que se usan varios núcleos para ejecutar parte de ella.

Puedes filtrar por percentil para ver los percentiles 50, 95 o 99 y detectar las consultas que no cumplen con el tiempo de ejecución esperado. Para analizar la latencia histórica de la consulta normalizada, cambia el período.

Analiza las consultas normalizadas

Los planes de consultas te ayudan a comprender y analizar las consultas normalizadas, ya que proporcionan un desglose de las diferentes operaciones en una muestra de tu consulta.

El plan de consulta de muestra proporciona una vista EXPLAIN ANALYZE para los ejemplos de plan de consulta que están relacionados con la consulta normalizada. Estos son planes de consultas ejecutados que proporcionan un desglose del tiempo activo que realizó cada operación en el plan de consultas.

Para ver un plan de consulta de muestra, sigue estos pasos:

  1. En la consola de Google Cloud, ve a la página Clústeres.

    Ir a los clústeres

  2. En la lista de clústeres e instancias, haz clic en una instancia.

  3. Haz clic en Estadísticas de consultas.

  4. Elige la base de datos y el usuario.

  5. Elige el tiempo de ejecución total para el que deseas mostrar datos, por ejemplo, 1 o 6 horas, o un tiempo personalizado.

  6. En la tabla Dimensiones principales por carga de base de datos, haz clic en una consulta.

  7. En Muestras de planes de consultas, haz clic en cualquiera de los puntos del gráfico para ver un plan de consultas de esa consulta.

Supervisa y soluciona problemas de rendimiento de las aplicaciones con etiquetas

Las Estadísticas de consultas mejoradas proporcionan supervisión centrada en la aplicación y simplifican el diagnóstico del rendimiento de las aplicaciones compiladas con asignaciones relacionales de objetos (ORM). El etiquetado de consultas te ayuda a encontrar problemas en construcciones de nivel superior, como el uso de la lógica empresarial, un microservicio o alguna otra construcción. Puedes usar etiquetas en tu aplicación para hacer lo siguiente:

  • Supervisa el rendimiento de la base de datos.
  • Usa Sqlcommenter para identificar problemas de rendimiento causados por el código de la aplicación.
  • Analiza la carga de la base de datos.
  • Consulta la carga por etiqueta.

Para obtener información sobre cómo usar etiquetas en las Estadísticas de consultas, consulta Usa las Estadísticas de consultas para mejorar el rendimiento de las consultas.

Soluciona problemas de aplicaciones en la capa de base de datos

Las estadísticas de consultas mejoradas proporcionan una vista de seguimiento de extremo a extremo en contexto para ayudarte a comprender los problemas con la aplicación en la capa de la base de datos para una solicitud específica. Los seguimientos de aplicaciones de extremo a extremo en contexto te ayudan a determinar la fuente de la consulta problemática, por ejemplo, por modelo, vista, controladores y ruta.

Cuando habilitas OpenTelemetry, la información del intervalo se envía a la base de datos junto con la información de la etiqueta dentro de los comentarios de SQL. Los seguimientos de la aplicación a Cloud Logging se vinculan con los seguimientos del plan de consulta de la base de datos para identificar el origen del problema.

Para ver un seguimiento en contexto, sigue estos pasos:

  1. En la consola de Google Cloud, ve a la página Clústeres.

    Ir a los clústeres

  2. En la lista de clústeres e instancias, haz clic en una instancia.

  3. Haz clic en Estadísticas de consultas.

  4. Elige la base de datos y el usuario.

  5. Haz clic en cualquier entrada de la tabla Dimensiones principales por carga de base de datos.

  6. En la página Detalles de las estadísticas de consultas, haz clic en DE ARRIBA ABAJO.

También puedes usar Cloud Trace para ver el seguimiento de extremo a extremo de cada paso en el plan de consulta. Para acceder a Cloud Trace, selecciona Operaciones > Seguimiento.

Preguntas frecuentes

En esta sección, se proporcionan respuestas a las preguntas frecuentes sobre las estadísticas de consultas enriquecidas.

¿Por qué se trunca la cadena de consulta?

De forma predeterminada, las Estadísticas de consultas mejoradas muestran 10 KB en cadenas de consulta. Puedes aumentar la visualización a 100 KB.

¿Por qué la carga de la CPU está por encima de la línea de núcleos máximos en el gráfico Carga de la base de datos?

La carga de la CPU representa el tiempo de ejecución y el tiempo de espera para que el programador de Linux programe el proceso del servidor en ejecución, por lo que, como resultado, la carga de la CPU puede superar la línea de núcleos máximos.

¿Puedo usar las métricas estándar de las Estadísticas de consultas?

Sí. Las estadísticas de consultas estándar generan contadores a los que se puede acceder a través de Stackdriver. Mientras las Estadísticas de consultas mejoradas están en versión preliminar, estas métricas están disponibles con la API de Cloud Monitoring con las Estadísticas de consultas mejoradas. Para obtener más información, consulta Métricas deGoogle Cloud .

¿Cuál es la longitud máxima de la cadena de consulta?

En el caso del complemento estándar de Estadísticas de consultas, la longitud máxima de la cadena de consulta se limita a 4.5 KB de caracteres. Para las estadísticas de consultas mejoradas, la longitud de la cadena predeterminada es de 10 KB y la longitud máxima se limita a 100 KB.

¿Puedo usar las Estadísticas de consultas mejoradas en la replicación entre regiones?

No puedes habilitar las Estadísticas de consultas mejoradas en clústeres con instancias secundarias. Antes de crear una instancia secundaria en un clúster, debes inhabilitar las Estadísticas de consultas mejoradas en todas las instancias del clúster si ya están habilitadas.

¿Qué sigue?