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, es posible que los resultados se limiten a un subconjunto de las consultas totales.

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 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:

  • Ver 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 otros roles predefinidos.

Habilita las consultas activas

Cuando habilitas las estadísticas de consultas, habilitas las consultas activas de forma automática. Para poder finalizar una sesión o una transacción de larga duración en 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 Google Cloud consola de, 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 larga de ejecución 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 en SQL.
Estado de la sesión Es el estado de la sesión.
Duración de consulta Es el tiempo que se ejecuta 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 para el que espera la solicitud actualmente, si la solicitud 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 Es la 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 consulta.
Tiempo de CPU (ms) Es el tiempo de CPU en milisegundos que usa la solicitud.
Nombre de la aplicación Es el nombre de la aplicación que inició la sesión.
Filas de la transacción modificadas Es la cantidad de filas que esta consulta muestra al cliente.
Porcentaje completado Es el porcentaje de trabajo completado, si la consulta 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 Opciones de visualización de contenido… menú vertical para filtrar las columnas que deseas mostrar.

Finaliza 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 finalizar.

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 brinda la opción de finalizar consultas activas específicas de larga duración o bloqueadas.

Habilita el análisis de consultas activas bloqueadas

De forma predeterminada, Google Cloud la 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 Google Cloud consola de, 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. Ambas configuraciones son obligatorias.
  6. Selecciona Análisis de consultas bloqueadas.
  7. Haz clic en Guardar.

Identifica y finaliza una consulta activa bloqueada

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

Console

  1. En la Google Cloud consola de, 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 Transacciones más largas. Puedes ver hasta 50 de las consultas activas de ejecución más larga en cada categoría.

    Cada entrada que se muestra tiene detalles de consultas activas mostrados, incluidos los siguientes:

    • ID de sesión: Es el ID de sesión de la consulta. Haz clic en expandir para ver la entrada. Puedes ver uno de los dos í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, el número indica cuántas consultas dependientes esperan que finalice esta consulta.
      • Ícono de símbolo de bloqueo: Este ícono indica que la consulta no puede finalizar y podría bloquear otras consultas.
    • Consulta: Texto de consulta en SQL.
    • Estado de la sesión: Es el estado de la sesión.
    • Duración de la consulta (segundos): Es el tiempo que se ejecuta la consulta.
    • 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 se bloquea para la ejecución de la consulta.
    • Recurso de espera: Es el recurso para el que espera la solicitud actualmente, si la solicitud se bloquea para la ejecución de la consulta.
    • Duración de espera de la transacción (segundos): Es la duración de la espera actual, si la sesión está bloqueada.
    • Acción: Posibles acciones que puedes realizar, como Finalizar sesión.

    Haz clic para expandir el ID de sesión que deseas investigar. Puedes expandir las sesiones 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.

Consulta los detalles de las sesiones inactivas de bloqueo

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 para 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 problemas y resolver bloqueos, consulta los siguientes recursos:

¿Qué sigue?