Usa las Estadísticas de consultas para mejorar el rendimiento de las consultas

En esta página, se describe cómo usar el panel de Estadísticas de consultas para detectar y analizar problemas de rendimiento.

Introducción

Estadísticas de consultas te ayuda a detectar, diagnosticar y prevenir problemas de rendimiento de las consultas para las bases de datos de Cloud SQL. Admite la supervisión intuitiva y proporciona información de diagnóstico que te ayuda a ir más allá de la detección para identificar la causa raíz de los problemas de rendimiento.

Estadísticas de consultas te ayuda a mejorar el rendimiento de las consultas de Cloud SQL mediante la orientación a través de los siguientes pasos:

Cómo consultar estadísticas para la edición de Cloud SQL Enterprise Plus

Si usas la edición Enterprise Plus de Cloud SQL, puedes acceder a funciones adicionales en las estadísticas de consultas para realizar diagnósticos avanzados del rendimiento de las consultas. Además de las funciones estándar del panel de Estadísticas de consultas, las estadísticas de consultas de la edición Enterprise Plus de Cloud SQL te permiten hacer lo siguiente:

  • Captura texto de consulta más largo de hasta 20 KB
  • Mantén una retención de métricas de 30 días más prolongada
  • Obtén recomendaciones de índices del asesor de índices
  • Cómo finalizar una sesión en las consultas activas

En la siguiente tabla, se comparan los requisitos funcionales y las capacidades de las estadísticas de consultas de la edición de Cloud SQL Enterprise con las de la edición de Cloud SQL Enterprise Plus.

Área de comparación Consulta estadísticas de la edición de Cloud SQL Enterprise Cómo consultar estadísticas para la edición de Cloud SQL Enterprise Plus
Versiones de bases de datos compatibles

Todas las versiones de las siguientes instancias:

  • SQL Server Web
  • SQL Server Standard
  • SQL Server Enterprise

Estadísticas de consultas no es compatible con instancias de la edición Express de SQL Server.

SQL Server Enterprise versión 2019 o 2022
Tipos de máquinas admitidos Compatible con todos los tipos de máquinas No se admite en instancias que usan un tipo de máquina de núcleo compartido.
Regiones admitidas Ubicaciones regionales de Cloud SQL Ubicaciones regionales de la edición Enterprise Plus de Cloud SQL
Período de retención de métricas 7 días 30 días
Límite máximo de longitud de la consulta 4,500 bytes 20 KB
Recomendaciones del Asesor de índices No disponible Disponible
Cómo finalizar sesiones en consultas activas No disponible Disponible

Para habilitar las estadísticas de consultas de la edición de Cloud SQL Enterprise Plus durante la versión preliminar de tu instancia de la edición de Cloud SQL Enterprise Plus, sigue los pasos que se indican en Habilita las estadísticas de consultas de la edición de Cloud SQL Enterprise Plus.

Precios

No hay costo adicional por las estadísticas de consultas. Además, no hay costo para habilitar las estadísticas de consultas para la edición de Cloud SQL Enterprise Plus, que está en versión preliminar.

Requisitos de almacenamiento

Las estadísticas de consultas almacenan datos de métricas en la instancia y requieren que mantengas habilitado el parámetro de configuración de aumentos de almacenamiento automáticos. Se aplican las tarifas de almacenamiento correspondientes.

Antes de comenzar

Antes de usar las estadísticas de búsqueda, haz lo siguiente.

  1. Agrega los roles y permisos necesarios.
  2. Asegúrate de que la opción Habilitar los aumentos de almacenamiento automáticos esté habilitada para la instancia.

Roles y permisos requeridos

Para usar las estadísticas de consultas, debes otorgar roles con los permisos necesarios de Identity and Access Management o proporcionar una cuenta de usuario con los permisos necesarios.

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

Para obtener los permisos que necesitas para acceder a los datos históricos de ejecución de consultas en el panel de estadísticas de consultas, pídele a tu administrador que te otorgue los siguientes roles de IAM 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.

Estos roles predefinidos contienen los permisos necesarios para acceder a los datos históricos de ejecución de consultas en el panel de estadísticas de consultas. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para acceder a los datos históricos de ejecución de consultas en el panel Información sobre consultas:

  • databaseinsights.aggregatedStats.query
  • databaseinsights.timeSeries.query

También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.

Por ejemplo, en Database Insights, puedes pedirle al administrador que te otorgue el rol predefinido de Visualizador de Database Insights (roles/databaseinsights.viewer). Luego, en Cloud SQL, puedes pedirle al administrador que te otorgue uno de los siguientes roles predefinidos:

Habilitar los aumentos de almacenamiento automáticos

Asegúrate de que la configuración de la instancia para habilitar los aumentos automáticos de almacenamiento permanezca habilitada.

Si inhabilitaste este parámetro de configuración de la instancia, vuelve a habilitar los aumentos de almacenamiento automáticos antes de habilitar las estadísticas de consultas.

Habilitar las estadísticas de consultas

Los usuarios que tienen acceso al panel de Cloud SQL pueden acceder a las métricas de Estadísticas de consultas. Si tienes permiso para actualizar instancias, puedes habilitar las estadísticas de consultas. Para obtener una lista de los permisos necesarios para las instancias de Cloud SQL, consulta Control de acceso a proyectos de Cloud SQL. Si no tienes estos permisos y deseas habilitar Estadísticas de consultas en tus instancias, comunícate con tu administrador.

Console

Habilita las estadísticas de consultas para una instancia

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

    Ir a Instancias de Cloud SQL

  2. Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
  3. En el campo Configuración, haz clic en Editar configuración.
  4. En la sección Personaliza tu instancia, expande Estadísticas de consultas.
  5. Selecciona la casilla de verificación Habilitar Estadísticas de consultas.
  6. Opcional. Selecciona una o más de las siguientes funciones adicionales de las estadísticas de búsquedas:
  7. Personalizar la longitud de las consultas

    Valor predeterminado: 1024

    Establece el límite de longitud de la consulta en un valor especificado de 256 a 4,500 bytes. Las consultas de mayor longitud son más útiles para las consultas analíticas, pero también requieren más memoria. Para cambiar la longitud de las consultas, debes reiniciar la instancia.

  8. Haz clic en Guardar.

Habilitar las estadísticas de consultas para varias instancias

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

    Ir a Instancias de Cloud SQL

  2. Haz clic en el menú Más acciones en cualquier fila.
  3. Selecciona Habilitar Estadísticas de consultas.
  4. En el diálogo, selecciona la casilla de verificación Habilitar las estadísticas de consultas para varias instancias.
  5. Haz clic en Habilitar.
  6. En el siguiente cuadro de diálogo, selecciona las instancias para las que deseas habilitar las estadísticas de consultas.
  7. Haz clic en Habilitar Estadísticas de consultas.

gcloud

Para habilitar Estadísticas de consultas en una instancia de Cloud SQL con gcloud, ejecuta gcloud sql instances patch con la marca --insights-config-query-insights-enabled de la siguiente manera después de reemplazar INSTANCE_ID por el ID de la instancia.

    gcloud sql instances patch INSTANCE_ID \
    --insights-config-query-insights-enabled
  

Además, usa una o más de las siguientes marcas opcionales:

  • --insights-config-query-string-length

    Establece el límite de longitud predeterminado de la consulta en un valor especificado de 256 a 4,500 bytes. La longitud predeterminada de la consulta es de 1,024 bytes. Las consultas más largas son más útiles para las consultas analíticas, pero también requieren más memoria. Para cambiar la longitud de las consultas, debes reiniciar la instancia.

Reemplaza lo siguiente:

gcloud sql instances patch INSTANCE_ID \
--insights-config-query-insights-enabled \
--insights-config-query-string-length=INSIGHTS_CONFIG_QUERY_STRING_LENGTH \
--tier=API_TIER_STRING \
--region=REGION
  

REST v1

Para habilitar Estadísticas de consultas en una instancia de Cloud SQL con la API de REST, llama al método instances.patch con la configuración de insightsConfig.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • project-id: El ID del proyecto
  • instance-id: El ID de la instancia

Método HTTP y URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

Cuerpo JSON de la solicitud:

{
  "settings" : { "insightsConfig" : { "queryInsightsEnabled" : true } }
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2021-01-28T22:43:40.009Z",
  "operationType": "UPDATE",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

Terraform

Si deseas usar Terraform para habilitar Estadísticas de consultas en una instancia de Cloud SQL, configura la marca query_insights_enabled como true.

Además, puedes usar una o más de las siguientes marcas opcionales:

  • query_string_length: El valor predeterminado es 1024 y puedes configurarlo para que tenga un valor entre 256 y 4500 en bytes.
  • record_application_tags: Establece el valor en true si deseas registrar etiquetas de aplicación de la consulta.
  • record_client_address: Establece el valor en true si quieres registrar la dirección IP del cliente.
  • query_plans_per_minute: El valor predeterminado es 5 y puedes configurarlo para que tenga un valor entre 5 y 20.

A continuación, se presenta un ejemplo:

Para aplicar tu configuración de Terraform en un proyecto de Google Cloud , completa los pasos de las siguientes secciones.

Prepara Cloud Shell

  1. Inicia Cloud Shell
  2. Establece el proyecto predeterminado de Google Cloud en el que deseas aplicar tus configuraciones de Terraform.

    Solo necesitas ejecutar este comando una vez por proyecto y puedes ejecutarlo en cualquier directorio.

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    Las variables de entorno se anulan si configuras valores explícitos en el archivo de configuración de Terraform.

Prepara el directorio

Cada archivo de configuración de Terraform debe tener su propio directorio (también llamado módulo raíz).

  1. En Cloud Shell, crea un directorio y un archivo nuevo dentro de ese directorio. El nombre del archivo debe tener la extensión .tf, por ejemplo, main.tf. En este instructivo, el archivo se denomina main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Si sigues un instructivo, puedes copiar el código de muestra en cada sección o paso.

    Copia el código de muestra en el main.tf recién creado.

    De manera opcional, copia el código de GitHub. Esto se recomienda cuando el fragmento de Terraform es parte de una solución de extremo a extremo.

  3. Revisa y modifica los parámetros de muestra que se aplicarán a tu entorno.
  4. Guarda los cambios.
  5. Inicializa Terraform. Solo debes hacerlo una vez por directorio.
    terraform init

    De manera opcional, incluye la opción -upgrade para usar la última versión del proveedor de Google:

    terraform init -upgrade

Aplica los cambios

  1. Revisa la configuración y verifica que los recursos que creará o actualizará Terraform coincidan con tus expectativas:
    terraform plan

    Corrige la configuración según sea necesario.

  2. Para aplicar la configuración de Terraform, ejecuta el siguiente comando y, luego, escribe yes cuando se te solicite:
    terraform apply

    Espera hasta que Terraform muestre el mensaje “¡Aplicación completa!”.

  3. Abre tu proyecto de para ver los resultados. En la consola de Google Cloud , navega a tus recursos en la IU para asegurarte de que Terraform los haya creado o actualizado.

Se espera que las métricas estén disponibles en Estadísticas de consultas después de que se completan las consultas.

Habilita las estadísticas de consultas para la edición de Cloud SQL Enterprise Plus

Puedes habilitar las estadísticas de consultas para la edición Enterprise Plus de Cloud SQL en tu instancia de Cloud SQL solo con la consola de Google Cloud .

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

    Ir a Instancias de Cloud SQL

  2. Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
  3. Haz clic en Edit.
  4. En la sección Almacenamiento, verifica que esté seleccionada la casilla de verificación Habilitar los aumentos de almacenamiento automáticos.
  5. En la sección Personaliza tu instancia, expande Estadísticas de consultas.
  6. Selecciona la casilla de verificación Habilitar funciones de Enterprise Plus.
  7. Después de habilitar las estadísticas de consultas para la edición Enterprise Plus de Cloud SQL, puedes actualizar los siguientes campos:

    • Personalizar la longitud de las consultas: Especifica el límite, en bytes, de la longitud de la consulta. Puedes especificar un número de 256 a 20480. Cualquier cadena de consulta que supere el límite especificado se truncará en la visualización. Un límite de longitud de consulta más alto requiere más memoria. El valor predeterminado es 10240 bytes (10 KB).

  8. Haz clic en Guardar.

Visualiza el panel de Estadísticas de consultas

En el panel de Estadísticas de consultas, se muestra la carga de consultas según los factores que selecciones. La carga de consultas es una medición del trabajo total para todas las consultas en la instancia del intervalo de tiempo seleccionado. En el panel, se proporciona una serie de filtros que te ayudan a ver la carga de consultas.

Para abrir el panel de Estadísticas de consultas, sigue estos pasos:

  1. Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
  2. Selecciona la pestaña Estadísticas de consultas en el panel de navegación izquierdo o haz clic en el vínculo Ir a Estadísticas de consultas para obtener información más detallada sobre las consultas y el rendimiento.

Se abrirá el panel de Estadísticas de consultas. En ella, se muestra la siguiente información sobre tu instancia:

Muestra el panel de Estadísticas de consultas, con menús desplegables para bases de datos. A la derecha de los menús desplegables, hay un filtro para establecer un intervalo de tiempo.

  • Bases de datos: Filtra la carga de consultas en una base de datos específica o en todas las bases de datos.
  • Intervalo de tiempo: Filtra la carga de consultas por intervalos de tiempo, como 1 hora, 6 horas, 1 día, 7 días, 30 días o un intervalo personalizado.
  • Gráfico de carga de la base de datos: Muestra el gráfico de carga de consultas en función de los datos filtrados.
  • Consultas y Bases de datos: Filtra la carga de consultas por una consulta o una base de datos seleccionadas. Consulta Filtra la carga de la base de datos.

Visualiza la carga de la base de datos para todas las consultas

La carga de consultas de la base de datos es una medida del trabajo (en segundos de CPU) que ejecutan las consultas en la base de datos seleccionada a lo largo del tiempo. Cada consulta en ejecución utiliza o espera recursos de CPU, recursos de IO o recursos de bloqueo. La carga de consultas 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 comparación con las horas reales.

El panel de estadísticas de consultas de nivel superior muestra el grafo Carga de la base de datos por tiempo de ejecución. Los menús desplegables del panel te permiten filtrar el gráfico para todas las bases de datos o una específica.

Muestra todas las consultas ejecutadas para una base de datos elegida.

Las líneas de colores del gráfico muestran la carga de cada base de datos por tiempo de ejecución. Revisa el gráfico y usa las opciones de filtrado para explorar estas preguntas:

  • ¿La carga de consultas es alta? ¿El gráfico muestra aumentos repentinos o se eleva con el tiempo? Si no ves una carga alta, el problema no está relacionado con tu consulta.
  • ¿Cuánto tiempo ha estado alta la carga? ¿Es alta solo ahora o lo ha sido durante mucho tiempo? Usa el selector de intervalo de tiempo para seleccionar varios períodos a fin de averiguar cuánto tiempo ha durado el problema. Acerca el mapa para ver un período en el que se observan aumentos repentinos de la carga de consultas. Aléjate para ver hasta una semana del cronograma.
  • ¿Qué base de datos experimenta la carga? Selecciona bases de datos diferentes en el menú desplegable Bases de datos para encontrar las bases de datos con las cargas más altas.

Filtra la carga de la base de datos

Puedes filtrar la carga de la base de datos por consultas. Si usas las estadísticas de consultas de la edición de Cloud SQL Enterprise Plus, puedes personalizar el gráfico de carga de la base de datos para desglosar los datos que se muestran con cualquiera de las siguientes dimensiones:

  • Todas las consultas

  • Bases de datos

Para personalizar el gráfico de carga de la base de datos, selecciona una dimensión del menú desplegable Carga de la base de datos por tiempo de ejecución.

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

Para ver los principales contribuyentes a la carga de la base de datos, puedes usar la tabla Dimensiones principales por carga de la base de datos. La tabla Dimensiones principales por carga de la base de datos muestra los factores más importantes para el período y la dimensión que seleccionas en el menú desplegable del gráfico Carga de la base de datos por tiempo de ejecución. Puedes modificar el período o la dimensión para ver los principales colaboradores de una dimensión o un período diferentes.

En la tabla Dimensiones principales por carga de datos, puedes seleccionar las siguientes pestañas.

Tab Descripción
Consultas En la tabla, se muestran las consultas normalizadas principales 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.
  • Promedio de filas mostradas: Es la cantidad promedio de filas recuperadas para la consulta.
  • Cantidad de llamadas: Es la cantidad de veces que la aplicación llamó a la consulta.
Bases 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 pasan en la base de datos específica.
  • Tiempo total en la base de datos (ms): Es el tiempo de ejecución total que las consultas dedicaron a la base de datos específica.

Filtra por consultas

La tabla de Consultas proporciona una descripción general de las consultas que generan la mayor carga de consultas. En la tabla, se muestran todas las consultas normalizadas para el período de tiempo y las opciones seleccionadas en el panel de Estadísticas de consultas. Ordena las consultas por tiempo total de ejecución durante el período que seleccionaste.

Para ordenar la tabla, selecciona el encabezado de una columna. La tabla muestra las siguientes propiedades:

  • Consulta: Es la cadena de consulta normalizada. De forma predeterminada, Estadísticas de consultas muestra solo 1,024 caracteres en la cadena de consulta.
  • Base de datos: Es la base de datos en la que se ejecutó la consulta.
  • Tiempo de ejecución promedio (ms): El tiempo promedio de ejecución de la consulta.
  • Tiempo total de ejecución (ms): Es el tiempo total que tarda en ejecutarse la consulta.
  • Cantidad de llamadas: Es la cantidad de veces que la aplicación llamó a la consulta.
  • Promedio de filas mostradas: Es la cantidad promedio de filas mostradas para la consulta.

Estadísticas de consultas almacena y muestra solo las consultas normalizadas.

Inhabilita las estadísticas de consultas

Console

Para inhabilitar las estadísticas de consultas en una instancia de Cloud SQL con la consola de Google Cloud , sigue estos pasos:

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

    Ir a Instancias de Cloud SQL

  2. Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
  3. En el campo Configuración, haz clic en Editar configuración.
  4. En la sección Opciones de configuración, expande Estadísticas de consultas.
  5. Desmarca la casilla de verificación Habilitar Estadísticas de consultas.
  6. Haz clic en Guardar.

gcloud

Para inhabilitar las estadísticas de consultas en una instancia de Cloud SQL con gcloud, ejecuta gcloud sql instances patch con la marca --no-insights-config-query-insights-enabled de la siguiente manera después de reemplazar INSTANCE_ID por el ID de la instancia.

gcloud sql instances patch INSTANCE_ID 
--no-insights-config-query-insights-enabled

REST

Para inhabilitar las estadísticas de consultas en una instancia de Cloud SQL con la API de REST, llama al método instances.patch con queryInsightsEnabled establecido en false de la siguiente manera.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • project-id: El ID del proyecto
  • instance-id: El ID de la instancia

Método HTTP y URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

Cuerpo JSON de la solicitud:

{
  "settings" : { "insightsConfig" : { "queryInsightsEnabled" : false } }
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2021-01-28T22:43:40.009Z",
  "operationType": "UPDATE",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

Inhabilita las estadísticas de consultas para la edición de Cloud SQL Enterprise Plus

Para inhabilitar las estadísticas de consultas en la edición Enterprise Plus de Cloud SQL, haz lo siguiente:

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

    Ir a Instancias de Cloud SQL

  2. Para abrir la página de Descripción general de una instancia, haz clic en su nombre.
  3. Haz clic en Edit.
  4. En la sección Personaliza tu instancia, expande Estadísticas de consultas.
  5. Desmarca la casilla de verificación Habilitar funciones de Enterprise Plus.
  6. Haz clic en Guardar.

¿Qué sigue?