Monitor de actividad SQL Server

El sistema monitor de actividad y las bases de datos de SQL Server muestran las métricas que indican el rendimiento del servidor. La supervisión eficiente proporciona suficiente información para diagnosticar problemas, bloqueos, cuellos de botella y solucionarlos.

¿Qué es el monitor de actividad de SQL Server?

El Monitor de actividad de SQL Server es una característica de SQL Server Management Studio que muestra información sobre los procesos de SQL Server y su efecto en el rendimiento del servidor de base de datos

Paneles de monitor de actividad

El Monitor de actividad consta de varios paneles: Descripción general, Procesos, Esperas de recursos, E / S de archivos de datos y Consultas recientes y costosas . Los paneles se pueden expandir y colapsar. Las actividades se consultan solo cuando el panel específico se expande.

“El Monitor de actividad ejecuta consultas en la instancia supervisada para obtener información para los paneles de visualización del Monitor de actividad. Cuando el intervalo de actualización se establece en menos de 10 segundos, el tiempo que se utiliza para ejecutar estas consultas puede afectar el rendimiento del servidor ”

El panel de información general

El Monitor de actividad de SQL Server es una característica de SQL Server Management Studio que muestra información sobre los procesos de SQL Server y su efecto en el rendimiento de SQL Server.

El panel Información general contiene los gráficos de la información de instancia de SQL Server más importante. El menú contextual contiene la opción Intervalo de actualización que se puede establecer en un valor predefinido de 1 segundo a 1 hora.

Monitor de actividad SQL Server

% De tiempo de procesador : es el porcentaje de tiempo que los procesadores dedican a ejecutar subprocesos que no están inactivos.

Tareas en espera : es la cantidad de tareas que esperan la liberación del procesador, la E / S o la memoria para que se puedan procesar las tareas.

E / S de Base de datos: es la velocidad de transferencia de datos en MB / s de la memoria al disco, del disco a la memoria o del disco al disco.

Solicitudes de Batch / seg : es el número de batch o lotes de SQL Server recibidos por la instancia en un segundo.

El panel de procesos

El panel Procesos muestra la información sobre los procesos que se ejecutan actualmente en las bases de datos SQL, quién los ejecuta y desde qué aplicación..

Una información sobre herramientas para cada encabezado de tabla muestra una breve descripción de los datos de columna y las vistas del sistema utilizadas para obtenerla. Cada columna se puede filtrar usando los filtros en el encabezado de la columna.

El menú contextual para el proceso específico proporciona opciones para ver el último lote de comandos de T-SQL para el proceso, eliminarlo o rastrearlo en el Analizador de SQL Server.

Monitor de actividad SQL Server

ID de sesión : es un valor único asignado por el Motor de base de datos a cada conexión de usuario. Este es el valor spid devuelto por el procedimiento sp_who.

Proceso de usuario : 1 para procesos de usuario, 0 para procesos del sistema. El filtro predeterminado se establece en 1, por lo que solo se muestran los procesos de usuario.

Proceso de usuario : 1 para procesos de usuario, 0 para procesos del sistema. El filtro predeterminado se establece en 1, por lo que solo se muestran los procesos de usuario.

Base de datos : el nombre de la base de datos en el que se está ejecutando el proceso.

Estado de la tarea: el estado de la tarea, en blanco para las tareas en estado ejecutable y inactivo. El valor también se puede obtener utilizando la vista sys.dm_os_tasks, como la columna task_state. Los estados devueltos pueden ser: .

“PENDIENTES: esperando un subproceso de trabajo.
RUNNABLE: ejecutable, pero a la espera de recibir un quantum. 
EN EJECUCIÓN: Actualmente se ejecuta en el planificador.
SUSPENDIDO: tiene un trabajo, pero está esperando un evento.
HECHO: Completado.
SPINLOOP: atascado en un spinlock “.

Comando : el tipo de comando actual. El valor también se puede obtener utilizando la vista sys.dm_exec_requests, como la columna command.

Aplicación : el nombre de la aplicación que creó la conexión.

Tiempo de espera (ms) : cuánto tiempo en milisegundos la tarea está esperando un recurso. El valor también se puede obtener utilizando la vista sys.dm_os_waiting_tasks , como la columna wait_duration_ms.

Tipo de espera: el último / actual tipo de espera. El valor también se puede obtener utilizando la vista sys.dm_os_waiting_tasks , como la columna wait_type . Las esperas pueden ser de recursos, cola y esperas externas.

Recurso de espera : el recurso que la conexión está esperando. El valor también se puede obtener utilizando la vista sys.dm_os_waiting_tasks , como la columna resource_description

Bloqueado por : el ID de la sesión que está bloqueando la tarea. El valor también se puede obtener utilizando la vista sys.dm_os_waiting_tasks , como la columna de bloqueo de sesión.

Bloqueador de cabeza : la sesión que causa la primera condición de bloqueo en una cadena de bloqueo.

Uso de memoria (KB) : la memoria utilizada por la tarea. El valor también se puede obtener utilizando la vista sys.dm_exec_sessions , como la columna memory_usage.

Nombre de host : el nombre de la computadora donde se realiza la conexión actual. El valor también se puede obtener utilizando la vista sys.dm_exec_sessions , como la columna host_name.

Grupo de carga de trabajo : el nombre del grupo de carga de trabajo del regulador de recursos  El valor también se puede obtener utilizando la vista sys.dm_resource_governor_workload_groups , como la columna de nombre.

El panel de recursos espera

Monitor de actividad SQL Server
Monitor de actividad SQL Server

Categoría de espera : las categorías se crean combinando tipos de espera estrechamente relacionados. Los tipos de espera se muestran en la columna Tipo de espera del panel Procesos.

Tiempo de espera (ms / seg) : el tiempo que todas las tareas en espera esperan uno o más recursos.

Tiempo de espera reciente (ms / seg) : el tiempo promedio que todas las tareas en espera estarán en espera por uno o más recursos.

Recuento promedio de camareros : se calcula para un punto común en el tiempo en el último intervalo de muestra y representa el número de tareas en espera de uno o más recursos.

Tiempo de espera acumulativo (segundos) : el tiempo total que las tareas de espera han esperado por uno o más recursos desde el último reinicio de SQL Server, o la última ejecución de DBCC SQLPERF.

El panel de E / S del archivo de datos

Muestra información sobre los archivos de base de datos en la instancia de SQL Server. Para cada base de datos, se enumeran todos los archivos de la base de datos: MDF, LDF y NDF, sus rutas y nombres.

Monitor de actividad SQL Server

Lectura de MB / seg : muestra la actividad de lectura reciente para el archivo de base de datos.

MB / seg Escrito : muestra la actividad de escritura reciente para el archivo de base de datos.

Tiempo de respuesta (ms) : tiempo de respuesta promedio para la actividad reciente de lectura y escritura.

El panel de consultas costosas recientes

Las consultas costosas son las consultas que utilizan muchos recursos: memoria, disco, red. El panel muestra las consultas costosas ejecutadas en los últimos 30 segundos. La información se obtiene de las vistas sys.dm_exec_requests y sys.dm_exec_query_stats . Un doble clic en la consulta abre la declaración monitoreada.

El menú contextual para la consulta específica proporciona opciones para abrir la consulta en el Editor de consultas y mostrar el plan de ejecución.

Monitor de actividad SQL Server
Consulta - la declaración de consulta SQL monitoreada

Ejecuciones / min : el número de ejecuciones por minuto, desde la última recopilación. El valor también se puede obtener utilizando la vista sys.dm_exec_query_stats , como la columna execution_count.

CPU (ms / sec) : la tasa de CPU utilizada, desde la última recompilación. El valor también se puede obtener utilizando la vista sys.dm_exec_query_stats , como la columna total_worker_time.

Lecturas físicas / seg., Escrituras lógicas / seg. Y Lecturas lógicas / seg. – la tasa de lecturas físicas / escrituras lógicas / lecturas lógicas por segundo. El valor también puede obtenerse utilizando el sys.dm_exec_query_statsvista, como las columnas total_physical_reads / total_logical_writes / total_logical_reads.

Duración media (ms) : tiempo promedio que se ejecuta la consulta. Calcula basándose en la total_elapsed_time y execution_count columnas en la vista sys.dm_exec_query_stats .

Recuento de planes: el número de planes de consulta duplicados. Un gran número requiere investigación y una posible parametrización explícita de consultas.

Requisitos para usar el Monitor de Actividad

El permiso necesario para ver el Monitor de actividad es VIEW SERVER STATE.

Para ver el panel de E / S del archivo de datos, además de VIEW SERVER STATE, se debe conceder al inicio de sesión CREATE DATABASE, ALTER ANY DATABASE, o VIEW ANY DEFINITION.

Para finalizar o matar un proceso, es necesario ser parte del role sysadmin.

Cómo iniciar Activity Monitor

Hay varias formas de iniciar el Monitor de actividad: en la barra de herramientas de SQL Server Management Studio, haga clic en el ícono del Monitor de actividad, use el atajo de teclado Ctrl + Alt + A, o en el Explorador de objetos , haga clic con el botón derecho en la instancia de SQL Server y seleccione Monitor de actividad.

Una opción más es configurar el Monitor de actividad para que se abra cuando se inicie SQL Server Management Studio.

  • En el menú de SQL Server Management Studio, haga clic en Herramientas y luego en Opciones.
  • Abrir ambiente | Pestaña de inicio.
  • Seleccione la opción Abrir Explorador de Objetos y Monitor de Actividad.

En el próximo inicio de SQL Server Management Studio, el Explorador de objetos se mostrará a la izquierda y el Monitor de actividad a la derecha.

El Monitor de actividad es una característica de SQL Server Management Studio que rastrea algunas de las métricas más importantes que afectan el rendimiento. Muestra las métricas en tiempo real, sin una solución para guardarlas para un análisis posterior. Filtrar por una base de datos / parámetro específico es fácil, pero excluir un valor específico no es posible. Monitorear métricas adicionales tampoco es posible. Debido a su conjunto limitado de características y métricas monitoreadas, no se recomienda para monitoreo de rendimiento en profundidad.