Guía DBA para la resolución de problemas de rendimiento de SQL
Server - Parte 2 - Utilidades de monitoreo
En este artículo, presentaremos las herramientas nativas de Windows y SQL Server comúnmente
utilizadas para solucionar problemas de rendimiento de SQL Server. La selección de la utilidad de
monitoreo de rendimiento correcta depende de sus objetivos de monitoreo y conocimiento de
codificación, ya que las herramientas proporcionan información diferente y tienen una capacidad
de análisis diferente
Analizador de SQL Server
SQL Server Profiler es una herramienta de monitoreo que puede usar para crear y administrar los
rastros de SQL Server para monitorear la actividad de la instancia de SQL Server. Estos archivos de
rastreo pueden luego ser analizados y reproducidos. Profiler tiene una interfaz gráfica, lo que
facilita su uso
Además de las acciones de auditoría que ocurrieron en una instancia de SQL Server, es útil para la
resolución de problemas de rendimiento de SQL Server, ya que puede rastrear el procedimiento
almacenado y la ejecución de consultas y mostrar las lentas, las declaraciones de captura y los
eventos que causaron la degradación del rendimiento, reproducir el conjunto específico de
eventos en otro entorno para pruebas, etc.
Para iniciar el Analizador de SQL Server:
1. Open Start, Todos los programas (Windows + C para Windows 8)
2. Seleccione SQL Server Profiler
1. Abrir SQL Server Management Studio
2. En el menú Herramientas , seleccione SQL Server Profiler.
1. Abra el símbolo del sistema
2. Tipo de perfil
3. Presiona enter
Ahora, debe crear rastros que recopilen la información que necesita para monitorear y solucionar
problemas de rendimiento de SQL Server
Para crear una nueva traza:
1. En SQL Server Profiler , abra Archivo en el menú
2. Seleccione New Trace
3. Seleccione una instancia de SQL Server, Modo de autenticación y proporcione credenciales
4. En la pestaña Selección de eventos , haga clic en Mostrar todos los eventos.
5. Seleccione los eventos y las columnas de eventos que desea rastrear
Para capturar información sobre eventos que ocurren en una base de datos, por ejemplo, eventos
de datos y registro que crecen y se contraen automáticamente, seleccione estos eventos en Tipo
de evento de base de datos
Para rastrear varios errores, como el umbral de CPU excedido, seleccione este evento en el tipo de
EVENTO de errores y advertencias
6. En la pestaña General , seleccione si desea guardar la traza en un archivo o en una tabla
7. Haga clic en Ejecutar
Se capturarán todos los eventos que pertenecen a los tipos de eventos seleccionados para el
seguimiento.
Aunque el SQL Server Profiler proporciona mucha información útil, algunos DBA evitan su uso en
un servidor de producción, ya que puede agregar una sobrecarga significativa. Además, si no ha
configurado la propiedad de colección de seguimiento de SQL Server para recopilar solo la
información que realmente necesita para el análisis, habrá una gran cantidad de datos recopilados
que podrían ser difíciles de analizar
Monitor de rendimiento de Windows
Windows Performance Monitor es una herramienta de monitoreo que se incluye con
Windows. Realiza un seguimiento de varios contadores de rendimiento y supervisa el rendimiento
general del sistema y la aplicación. Los valores del contador se muestran en gráficos en tiempo
real y se pueden guardar en archivos de registro y utilizar para su posterior análisis.
Windows Performance Monitor proporciona una amplia gama de contadores. Monitorear
demasiados contadores afectará el rendimiento del sistema y dificultará el análisis, por lo que es
necesario determinar primero los objetivos de monitoreo y luego seleccionar los contadores para
monitorear. Un conjunto de contadores bien seleccionado proporciona suficiente información
para conclusiones útiles, diagnóstico rápido y encontrar el origen del problema, por lo tanto, una
solución eficiente de los problemas. La captura de contadores demasiado pequeños o incorrectos
no proporcionará suficiente información para conclusiones útiles, podría ser engañosa e inducir
conclusiones erróneas
Cuando se trata de seleccionar los contadores, es necesario comprender qué representan, qué son
los valores aceptables, si existe un umbral o el valor determinado en función de una línea de
tendencia.
Para abrir el Monitor de rendimiento de Windows:
Abra Inicio, Ejecutar (Windows + R para Windows 8), escriba perfmon y presione Entrar
Abra el Panel de control, Sistema y seguridad, Herramientas administrativas y haga clic
en Monitor de rendimiento
Para añadir un contador:
1. Seleccione Agregar contadores en el menú contextual o haga clic en el icono Agregar en el
menú
2. Seleccione la computadora que desea monitorear
3. En la lista de contadores disponibles, seleccione el grupo de contadores, por
ejemplo, MSSQL $ 2012: Buffer Manager y luego Escrituras diferidas / seg.
El Monitor de rendimiento de Windows muestra información útil en gráficos completos en tiempo
real y puede guardar datos históricos durante mucho tiempo, por lo que puede usarse para un
análisis posterior. Sus desventajas son que no puede proporcionar información suficiente para un
análisis profundo ni mostrar una línea de tendencia o un umbral en el gráfico
Monitor de actividad de SQL Server
El Monitor de actividad de SQL Server es una característica disponible en SQL Server Management
Studio, útil para el monitoreo rápido y básico de la actividad de SQL Server. Solo muestra
información sobre los procesos de SQL Server y su efecto en el rendimiento de SQL Server.
Muestra el % de tiempo de procesador, las tareas en espera, la E / S de la base de datos y
las solicitudes de lotes por segundo en el panel Descripción general ; la lista de procesos
actualmente en ejecución en la base de datos SQL en el panel Procesos ; la información sobre
espera recursos en el panel de recursos espera ; una lista de todas las bases de datos en la
instancia de SQL Server junto con información sobre los archivos de la base de datos, sus rutas y
nombres en el panel de E / S del archivo de datos , y la lista de consultas ejecutadas
recientemente que utilizan la mayoría de la memoria, el disco y la red Recursos en el panel
de Consultas Caras Recientes
Para iniciar el Monitor de actividad, haga clic con el botón derecho en la instancia de SQL Server en
el Explorador de objetos y seleccione Monitor de actividad
Activity Monitor no puede proporcionar datos para una investigación profunda, almacenar
registros históricos para análisis posteriores, ni parámetros adicionales que puedan monitorearse
Recopilador de datos de SQL Server
El Recopilador de datos de SQL Server es otra característica de SQL Server Management Studio
que se puede usar para la supervisión y solución de problemas de rendimiento de SQL Server. Está
disponible en SQL Server 2008 y versiones posteriores. El recopilador de datos puede recopilar
métricas de rendimiento en varias instancias de SQL Server y almacenarlas en un único
repositorio. Los datos se recopilan en función de la especificación utilizada. Hay tres
especificaciones integradas que proporcionan una recopilación automática de las métricas de
rendimiento más comunes: uso del disco, estadísticas de consulta y actividad del servidor. Se
pueden crear especificaciones de recopilador de datos personalizadas, pero requiere
codificación. La recopilación de datos solo es posible si el Agente SQL Server se está ejecutando y
el Almacén de datos de administración está configurado
Abrir informes de recopilación de datos.
1. En el Explorador de objetos de SQL Server Management Studio , expanda Administración
2. Haga clic con el botón derecho en Recopilación de datos y seleccione Informes.
3. Seleccione cualquiera de los informes disponibles: Historial de actividad del servidor,
Historial de estadísticas de consultas o Resumen de uso del disco
Vistas de gestión dinámica (DMV)
Además de las utilidades de monitoreo disponibles en Windows y SQL Server Management Studio,
las vistas de administración dinámica (DMV) también se pueden usar para monitorear el
rendimiento de SQL Server y solucionar problemas. Estos puntos de vista son:
sys.dm_exec_sessions, sys.dm_os_performanceces_contenedores de las cosas,
sys.dm_os_memory_brokers, sys.dm_os_memory_nodesm.
En este artículo, presentaremos solo unas pocas vistas de uso común para la supervisión del
rendimiento de SQL Server.
sys.dm_exec_sessions : devuelve una fila para cada sesión en la instancia de SQL Server
consultada, junto con detalles como el nombre del programa que inició la sesión, el estado de la
sesión, el inicio de sesión de SQL Server, varios contadores de tiempo y más
sys.dm_exec_requests : devuelve una fila para cada solicitud de usuario y sistema que se ejecuta
en la instancia de SQL Server. Para encontrar las solicitudes bloqueadas, busque las solicitudes en
las que el valor de la columna de estado esté 'suspendido'
sys.dm_exec_query_stats : devuelve una fila para cada declaración de consulta en un plan de
consulta en caché. Proporciona información sobre el tiempo promedio, mínimo, máximo y total
del procesador utilizado por el plan, junto con otra información útil para el análisis del
rendimiento.
sys.dm_os_performance_counters : devuelve una fila para cada contador de rendimiento de SQL
Server. Proporciona una forma rápida de averiguar los valores actuales del contador de
rendimiento. Sin embargo, hay cinco tipos de contador, y para asegurarse de que está
interpretando los valores devueltos correctamente, debe saber cómo calcular un valor para cada
tipo de contador. Es más fácil con el tipo de contador 65792, ya que no se necesita ningún
cálculo. Los tipos de contador 1073874176, 537003264 y 272696576 requieren un cálculo
adicional para proporcionar el valor de la corriente métrica
Si los valores no se calculan correctamente, pueden ser confusos, engañosos y llevar a
conclusiones erróneas.
Eventos extendidos de SQL Server
Los eventos extendidos de SQL Server permiten recopilar información útil para solucionar
problemas de rendimiento de SQL Server. Permiten encontrar las consultas más costosas, el
bloqueo, el interbloqueo y las causas de bloqueo, solucionar el uso excesivo del procesador y más
Para usar los eventos extendidos para la supervisión del rendimiento, determine qué eventos
desea monitorear y cree una sesión utilizando las opciones de SQL Server Management Studio, o
T-SQL
Para crear la sesión ReadWriteActivity para capturar datos de eventos para lecturas y escrituras
completas de archivos, y escríbalos desde el archivo de caché de registro al archivo de registro
físico:
CREATE EVENT SESSION ReadWriteActivity
ON SERVER
ADD EVENT sqlserver.file_read_completed,
ADD EVENT sqlserver.file_write_completed
ADD TARGET package0.asynchronous_file_target
(SET filename = 'c:\PerfLogs\ExtELog.xel', metadatafile = 'c:\PerfLogs\ExtELog.xem')
Una vez creada la sesión, para iniciarla:
1. Expandir la gestión en el Explorador de objetos
2. Expandir eventos extendidos
3. Expandir Sesiones
4. Encuentra la sesión del evento, haz clic derecho y selecciona Iniciar
Para ver los datos del evento en vivo con sus detalles, seleccione Ver datos en vivo en el menú
contextual del evento en el Explorador de objetos
También se inicia automáticamente la sesión incorporada de system_health al inicio del servicio
SQL Server, que proporciona información útil para la resolución de problemas de rendimiento.
En este artículo, presentamos las utilidades de monitoreo de rendimiento de SQL Server
disponibles en Windows y SQL Server. La información que proporcionan y el conocimiento
requerido para usarlos varían. Algunos de ellos, como el Monitor de actividad, son fáciles de usar y
no requieren codificación, pero al mismo tiempo proporcionan solo información básica útil para
obtener una visión general. Por otro lado, Extended Events puede monitorear y manejar varios
errores de tiempo de ejecución, cuellos de botella de recursos, bloqueos, etc. Pero para
aprovecharlos al máximo, se requiere codificación.