Supervisa las consultas activas

En esta página, se describe cómo supervisar y solucionar problemas de las consultas que están activas en tu base de datos. La supervisión de estas consultas puede ayudar a identificar las causas de la latencia del sistema y el uso alto de CPU.

En el panel de estadísticas de consultas, puedes ver un resumen de las transacciones activas y una lista de transacciones con consultas y estadísticas asociadas. Las transacciones se muestran según la hora de inicio de la transacción. Si hay una gran cantidad de consultas en ejecución, los resultados pueden estar limitados a un subconjunto del total de consultas.

Antes de comenzar

Para supervisar las consultas activas, puedes usar la edición Cloud SQL Enterprise o Cloud SQL Enterprise Plus.

Para finalizar una sesión o una transacción de larga duración en las consultas activas, debes usar la edición Cloud SQL Enterprise Plus para tu instancia de Cloud SQL.

Para obtener más información sobre las ediciones de Cloud SQL, consulta Introducción a las ediciones de Cloud SQL.

Roles y permisos requeridos

Para obtener los permisos que necesitas para ver las consultas activas, 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 ver las consultas activas. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para ver las consultas activas:

  • Consulta el resumen de la actividad de la base de datos y las transacciones de larga duración:
    • databaseinsights.activeQueries.fetch
    • databaseinsights.activitySummary.fetch

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

Habilita las consultas activas

Cuando habilitas las estadísticas de consultas, también habilitas las consultas activas automáticamente. Para poder finalizar una sesión o una transacción de larga duración en las consultas activas, debes usar las estadísticas de consultas para la edición Cloud SQL Enterprise Plus.

Inhabilita las consultas activas

No puedes inhabilitar las consultas activas sin inhabilitar las estadísticas de consultas. Para inhabilitar las consultas activas y las estadísticas de consultas, consulta Inhabilita las estadísticas de consultas.

Visualizar las consultas activas

Para ver tus consultas activas, completa los siguientes 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. Realiza una de las siguientes acciones para mostrar el panel Estadísticas de consultas:

    • Selecciona la pestaña Estadísticas de consultas.
    • Haz clic en Ir a Estadísticas de consultas para obtener información más detallada sobre las búsquedas y el rendimiento. Se abrirá el panel de Estadísticas de consultas. Muestra los detalles sobre la instancia en la parte superior.
  4. Haz clic en la pestaña Consultas activas.

    Desde aquí, puedes modificar la información de la consulta que aparece en la tabla Transacciones más largas:

    • Bases de datos: Filtra la carga de consultas en una base de datos específica o en todas las bases de datos.
    • Usuario: Filtra la carga de consultas de una cuenta de usuario específica.

Visualiza consultas activas normalizadas

Puedes ver una lista de las principales transacciones de larga duración con consultas activas normalizadas en el panel Estadísticas de consultas. Una consulta activa normalizada quita los datos sensibles y muestra un resumen. El resumen es el mismo para los diferentes valores que se usan en el siguiente ejemplo:

  • Consultas regulares

    • select * from test_table where id=1;
    • select * from test_table_where id=2;
  • Resumen o consulta normalizada

    • select * from test_table where id=?;

Una consulta que se ejecuta en diferentes sesiones se muestra como entradas diferentes en el panel.

Visualiza las transacciones más largas en ejecución

La tabla Transacciones más largas en el panel Estadísticas de consultas contiene las siguientes columnas:

Nombre de la columna Descripción
ID de sesión Es el identificador único de la sesión.
Consulta Texto de consulta de SQL.
Estado de la sesión Es el estado de la sesión.
Duración de consulta Cuánto tiempo lleva ejecutándose la consulta.
ID de sesión de bloqueo Es el ID de la sesión que bloquea la sesión.
Tipo de evento de espera Es el tipo de evento de espera si la solicitud se bloquea para la ejecución de la consulta.
Recurso de espera Es el recurso por el que espera actualmente la solicitud, si esta se bloquea para la ejecución de la consulta.
Duración de espera de la transacción Es la duración de la espera actual si la sesión está bloqueada.
Lecturas lógicas Es la cantidad de lecturas lógicas que realizó la solicitud.
Lecturas Es la cantidad de lecturas que realizó la solicitud.
Escrituras Es la cantidad de escrituras que realizó la solicitud.
Base de datos Base de datos en la que se ejecuta la sesión.
Usuario Nombre del usuario conectado a la base de datos.
Dirección del cliente Es la dirección IP específica del cliente que envió una búsqueda.
Tiempo de CPU (ms) Es el tiempo de CPU en milisegundos que usa la solicitud.
Nombre de la aplicación Nombre de la aplicación que inició la sesión.
Filas de la transacción modificadas Cantidad de filas que esta consulta devolvió al cliente.
Porcentaje completado Porcentaje de trabajo completado, si la búsqueda informa el progreso.
Memoria de consulta otorgada Es la cantidad de páginas asignadas a la ejecución de la solicitud.
Acción Contiene un vínculo para finalizar una sesión.

La pantalla se actualiza automáticamente cada 60 segundos.

Puedes usar el menú vertical Opciones de visualización de contenido… para filtrar las columnas que deseas mostrar.

Cómo finalizar una sesión

Para finalizar una sesión o una transacción de larga duración, debes usar la edición Cloud SQL Enterprise Plus y habilitar las estadísticas de consultas para la edición Cloud SQL Enterprise Plus.

Las operaciones de larga duración pueden tardar más en finalizarse.

Para finalizar una consulta o transacción, completa los siguientes pasos:

  1. En la tabla Transacción de ejecución más larga, selecciona una consulta.
  2. En la columna Acción, haz clic en Finalizar sesión.
  3. En la ventana Finalizar sesión, haz clic en Confirmar.

Consultas activas bloqueadas

Si una consulta activa específica está bloqueada o se ejecuta durante mucho más tiempo del esperado, esa consulta activa puede bloquear otras consultas dependientes.

Cloud SQL te permite finalizar consultas activas específicas de larga duración o bloqueadas.

Habilita el análisis de las consultas activas bloqueadas

De forma predeterminada,la Google Cloud consola no muestra qué consultas activas están bloqueadas.

Para analizar las consultas activas bloqueadas, se aplican los siguientes requisitos:

Para habilitar el análisis de consultas activas bloqueadas, haz lo siguiente:

Console

  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 Editar.
  4. Expande la sección Estadísticas de consultas.
  5. Selecciona Habilitar Estadísticas de consultas y Habilitar funciones de Enterprise Plus. Ambos parámetros son obligatorios.
  6. Selecciona Análisis de consultas bloqueadas.
  7. Haz clic en Guardar.

Cómo identificar y detener una consulta activa bloqueada

En los siguientes pasos, se muestra cómo identificar y finalizar una consulta activa específica que podría estar bloqueando otras consultas.

Console

  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 menú de navegación de SQL, haz clic en Estadísticas de consultas.
  4. Haz clic en la pestaña Consultas activas.

    Si aún no tienes consultas activas en ejecución, navega a Cloud SQL Studio y ejecuta las consultas que deseas investigar.

  5. Navega a la sección Longest running transactions. Puedes ver hasta 50 de las consultas activas de mayor duración en cada categoría.

    Cada entrada que se muestra tiene los detalles de la consulta activa, incluidos los siguientes:

    • ID de sesión: Es el ID de sesión de la búsqueda. Haz clic en expandir para ver la entrada. Puedes ver uno de los siguientes íconos:
      • Ícono de reloj de arena: Este ícono indica que la consulta está esperando que finalice otra consulta. Si se incluye un número junto al ícono, este indica cuántas consultas dependientes esperan a que finalice esta consulta.
      • Ícono de símbolo de bloqueo: Este ícono indica que la búsqueda no puede finalizar y que podría estar bloqueando otras búsquedas.
    • Query: Es el texto de la consulta en SQL.
    • Estado de la sesión: Es el estado de la sesión.
    • Duración de la búsqueda (en segundos): Es el tiempo que se ejecutó la búsqueda.
    • Tiempo de CPU(ms): Es el tiempo de CPU en milisegundos que usa la solicitud.
    • Tipo de evento de espera: Es el tipo de evento de espera si la solicitud está bloqueada para la ejecución de la consulta.
    • Recurso de espera: Es el recurso por el que la solicitud está esperando actualmente si está bloqueada para la ejecución de la consulta.
    • Duración de espera de la transacción (en segundos): Es la duración de la espera actual si la sesión está bloqueada.
    • Acción: Posibles acciones que se pueden realizar, como Finalizar sesión.

    Haz clic para expandir el ID de sesión que deseas investigar. Puedes expandir los procesos subyacentes hasta tres niveles de profundidad en el árbol de investigación.

  6. Identifica la consulta específica que está bloqueada y, luego, haz clic en Finalizar sesión. Después de finalizar la sesión, puedes navegar a Cloud SQL Studio para volver a ejecutar tus consultas activas.

Cómo ver los detalles del bloqueo de sesiones de sueño

En la pestaña Consultas activas, se muestran las sesiones que están procesando una solicitud. Las sesiones en el estado SLEEPING se excluyen de esta vista.

Para ver el último comando ejecutado en una sesión inactiva, usa la siguiente secuencia de comandos:

SELECT c.session_id, st.text,s.login_name, s.open_transaction_count, s.host_name, s.program_name
FROM sys.dm_exec_connections AS c JOIN sys.dm_exec_sessions AS S ON c.session_id=s.session_id
CROSS APPLY sys.dm_exec_sql_text(c.most_recent_sql_handle) AS st
WHERE s.session_id=BLOCKING_SESSION_ID

Reemplaza BLOCKING_SESSION_ID por el ID de la sesión que causa el bloqueo.

Para obtener más información que te ayude a solucionar y resolver el bloqueo, consulta los siguientes recursos:

¿Qué sigue?