Como estos reportes no proveen suficiente información para el monitoreo del desempeño de SQL Server y para la solución de problemas, Microsoft ha creado un conjunto de reportes de tablero de desempeño que proveen más detalles acerca de lo que está pasando en su SQL Server.
Aunque aún no hay Performance Dashboard Reports para SQL Server 2014, usamos los reportes para SQL Server 2012 y los probamos en SQL Server 2014.
Comenzando con Performance Dashboard Reports
SQL Server Performance Dashboard Reports son reportes personalizados hecho para hacer del monitoreo de desempeño una tarea fácil. Tenga en mente que estos son reportes listos para usarse y que SQL Server Reporting Services no tiene que estar instalados en el SQL Server donde los usará.
Al igual que los reportes estándar, estos reportes ayudan a identificar el uso del CPU, la actividad I/O, los bloqueos, cuellos de botella, índices perdidos, etc. Como los valores para los reportes son principalmente obtenidos de vistas de administración dinámicas, como sys.dm_os_performance, sys.dm_os_memory_clerks, sys.dm_exec_requests, etc., no se añade un costo adicional para monitorear el desempeño. Para poder consultar estas vistas, el inicio de sesión de SQL Server debe tener el permiso de servidor VIEW SERVER STATE.
Instalación de Performance Dashboard Reports
- Descargue el instalador aquí: Microsoft® SQL Server® 2012 Performance Dashboard Reports
- Inicie el instalador y siga los pasos e instrucciones. Por defecto, la configuración descomprime los archivos en C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Performance Dashboard. Aparte de los reportes (archivos .rdl), esta carpeta también contiene un archivo de ayuda chm, un archivo léeme que en realidad es una guía paso a paso respecto de qué hacer luego y el archivo setup.sql que debería ser usado en el siguiente paso
- Para poder usar los reportes, las funciones y procedimientos almacenados de Performance Dashboard Reports tienen que ser instalados en cada instancia SQL Server que desee monitorear. Para hacer eso, abra el archivo setup.sql y ejecútelo contra la instancia SQL Server usando SQL Server Management Studio, o cualquier otro ambiente de desarrollo integrado. El script crea una tabla y múltiples procedimientos almacenados, funciones escalares y con valor de tabla en la base de datos msdb. Todos los objetos creados están en el esquema MS_PerfDashboard.
- Repita el paso 3 contra todas las instancias SQL Server que desea monitorear
Cómo usar los reportes
- En Object Explorer, haga clic derecho en la instancia SQL Server
Seleccione Reports|Custom Reports
- El diálogo Open File muestra la carpeta donde el instalador de Performance Dashboard Reports fue descomprimido. Sólo loa archivos de reportes (*.rdl) son mostrados
- Seleccione el archivos performance_dashboard_main-rdl
Si usted obtiene el aviso de Run Custom Report, haga clic en Run dado que los reportes vienen de una fuente confiable y no hay amenazas
Los reportes de Performance Dashboard Reports no están listados como los reportes Estándar, sino que se abren como archivos.
Este es el tablero principal desde donde usted puede ir a todos los otros reportes disponibles seleccionando los enlaces en el reporte.
Si usted no ha deshabilitado los avisos Run Custom Report, cada vez que usted haga clic en un enlace en el reporte, usted obtendrá la ruta y el nombre del Performance Dashboard Report que será abierto, así que usted puede emparejar reportes en el tablero a archivos .rdl en la carpeta de Performance Dashboard, ya que sus nombres no siempre son idénticos. Por ejemplo, Cache hit ratio para User requests abre el reporte wait_buffer_io_rdl.
El tablero muestra el uso del procesador por los últimos 15 minutos, por parte de SQL Server y el sistema operativo, e información básica para la actividad actual e histórica.
Un valor recomendado para el uso del procesador es hasta 80%. Los picos cuando algún proceso pesado está siendo realizado son aceptables. Picos ocasionales sin una razón conocida deberían ser investigados. Si el uso del procesador es constantemente sobre 80%, considere un análisis más profundo de las consultas, índices y el diseño de la base de datos, añadir más recursos de hardware o distribuir la carga en otros servidores.
Para volver al reporte padre, haga clic en el ícono Navigate backward en el menú del reporte (el primero a la izquierda), o presione Ctrl y – en el teclado.
User requests
El reporte User requests o Current requests muestra el código del usuario corriendo actualmente. Por cada petición, el script completo es ejecutado como se muestra, así también como el tiempo de inicio de la ejecución, el estado, las estadísticas de espera, el tiempo del procesador, las lecturas lógicas y físicas, la memoria de consultas concedida, etc.
User sessions
El reporte User sessions muestra todas las sesiones de usuarios (en espera y corriendo) actualmente activas en la instancia de SQL Server. También hay una opción para mostrar las sesiones del sistema. Por cada sesión, la siguiente información es mostrada: el ID de la sesión, el estado, el tiempo de CPU, el uso de la memoria, las lecturas lógicas y físicas, las escrituras, el nombre de inicio de sesión el nombre del programa, el nombre del anfitrión, el dominio NT, el nombre de usuario NT, así como los tiempos de inicio y final de la última petición.
Buffer IO Waits
El reporte Buffer IO Waits muestra el ratio de páginas leídas desde el búfer el número total de páginas leídas. Si la página no es leída desde el búfer, tiene que ser leído desde el disco, lo que degrada el desempeño.
El valor recomendado es más alto que 95%. Sin embargo, esta métrica puede ser engañosa, ya que los valores altos son mostrados incluso cuando el desempeño sufre. Por tanto, es recomendado usar algunas otras métricas, como Page Life Expectancy, Page reads/sec y Free Pages.
Waits
El reporte Waits muestra la información acerca de los procesos SQL Server en espera de ser procesados. La información es obtenida desde la vista de administración dinámica sys.dm_os_wait_stats.
SQL Server soporta más de 200 tipos de esperas, pero el reporte muestra esperas similares agrupadas en la misma categoría con nombres de categoría amigables al usuario. Por ejemplo, todas las esperas donde la columna wait_type tiene el valor como LCK_M (LCK_M_SCH_S, LCK_M_SCH_M, LCK_M_S, etc.), son sumadas y mostradas como Lock waits en el reporte, todas las esperas con el tipo de espera como LATCH (LATCH_NL, LATCH_KP, LATCH_SH, etc.) son mostrada como Latch, etc.
Usted puede encontrar las condiciones usadas para agrupar esperas en la función MS_PerfDashboard.fn_WaitTypeCategory.
IO statistics
El reporte IO statistics muestra las lecturas y escrituras (porcentaje, número y tiempo de espera) por cada base de datos. Note que los valores mostrados son acumulativos desde que el último SQL Server inicia.
El reporte también muestra 20 tablas con la mayor actividad IO e indica si hay un índice perdido en la tabla, como aquella que puede ser una causa para los valores altos de IO.
Expensive queries
Un conjunto de reportes de consultas costosas muestra la información acerca de 20 consultas que usan más recursos, agrupadas en diferentes categorías: tiempo de procesador, duración, lecturas lógicas, lecturas físicas, escrituras lógicas y tiempo de CLR. El mismo reporte rdl, query_stats, es usado para todos los reportes.
La información en este reporte es obtenida desde sys.dm_exec_query_stats. Note que la vista no contiene la información acerca de otras sentencias que no sean sentencias DML (INSERT, UPDATE, DELETE y SELECT), por lo tanto, algunas otras operaciones que usan recursos intensivamente, como crear una copia de seguridad completa de la base de datos, no son mostradas en el reporte, haciéndolo potencialmente engañoso.
Para profundizar en la consulta, haga clic en el enlace en la columna Representative Query y se abrirá un nuevo reporte mostrando el plan de consultas. Este reporte provee dos nuevos reportes donde se aplique: la guía del plan y los índices perdidos.
Miscellaneous information
Esta sección contiene tres reportes: Active traces, Active Xevent sessions, y Databases.
El reporte Active traces muestra resultados sólo cuando al menos un rastro SQL está corriendo. De otra manera, el enlace en el tablero principal será deshabilitado y el archivo traces.rdl no mostrará resultados. El reporte muestra el tiempo de inicio del rastro, el estado, la ruta y el nombre del archivo .trc, el tamaño del búfer, el número de búferes, así como los nombres de los eventos capturados.
El reporte Active Xevent sessions es similar al reporte Active traces, sólo muestra la información para las sesiones de eventos extendidos que están funcionando. Tanto Active traces como Active Xevent sessions usan el mismo reporte rdl, traces.rdl.
El reporte Databases muestra información básica acerca de todas las bases de datos alojadas en la instancia SQL Server, el nombre, nivel de compatibilidad, modelo de recuperación, tamaño, etc.
Para desinstalar Performance Dashboard Reports use Windows Control Panel, Uninstall a program.
SQL Server Performance Dashboard Reports muestra algunas de las métricas comúnmente monitoreadas. Aunque no hay un nuevo lanzamiento para SQL Server 2014, Microsoft SQL Server 2012 Performance Dashboard Reports puede ser usado en SQL Server 2014 sin ningún problema. Ellos proveen información más útil y profunda acerca del desempeño de SQL Server que los reportes estándar , de SQL Server Management Studio, pero aún no suficiente para ninguna resolución de problemas de desempeño más profunda.
Recursos
- Microsoft® SQL Server® 2012 Performance Dashboard Reports
- sys.dm_os_wait_stats (Transact-SQL)
- sys.dm_exec_requests
Traductor: Daniel Calbimonte
- Una guía de DBA para la solución de problemas de rendimiento de SQL Server – parte 2 – utilización de la supervisión - May 7, 2019
- Planes de ejecución de consultas – Entendiendo y leyendo los planes - April 19, 2018
- Mala indexación de base de datos – El asesino de las consultas SQL – recomendaciones - April 18, 2018