03 troubleshooting essentials dmv - sql pass peru
DESCRIPTION
TRANSCRIPT
Troubleshooting en SQL Server 2012 vía DMV
Guillermo Taylor F.Consultor Senior TI & Especialista SQL [email protected] http://mastergt68.wordpress.com
Hoy hablaremos de…
Escenarios de “troubleshooting”¿Qué son los DMV o DMO?
ArquitecturaDMVs útiles para desempeño
WaitsWaiting TasksExec Queries
ConclusionesDocumentación y referencia
Escenarios de “troubleshooting”
Mi aplicación la percibo lenta.Ayer no estaba así; seguro se puso así al aplicarle el Service Pack al SQL Server…
Cuando corro la aplicación, la CPU se “dispara”.Esa consulta ayer no ejecutaba tan lenta.
Seguro se puso así al ejecutar el “plan de mantenimiento”…
Es que ese SQL Server se consume toda la memoria.
Seguro eso está impactando en el desempeño de la aplicación; ayer no estaba así…
Dynamic Management Views
Objetos en SQL ServerEsquema SYSTEM
Utilización o consumo de recursos del sistemaInformación valiosa sobre:
ConexionesSesionesTransaccionesSentencias T-SQLProcesos
Solo para SQL Server 2005 y superior
Muchísimos DMV…
(150) Organizados por categorías…
AlwaysOn (13)Change Data Capture (3)Change Tracking (1)CLR (4)DB Mirroring (2)Database (7) Execution (22)Extended Events (9)Filestream & File Table (3)Full-Text Search & Semantic Search (12)
Index (7)I/O (4)Object (2)Query Notifications (1)Replication (4)Resource Governor (3)Security (8)Service Broker (4)SQL Server Operating System (31)Transaction (10)
Y, ¿por qué DMVs?
Si escribes un query, puedes usar las DMV para obtener algunas respuestas.Rapidez, generalmente.Flexibilidad.Versatilidad.Pocos o muchos datos.
De hecho, muchísimos datos pueden ser una desventaja…
Respuestas en tiempo real.Buena documentación y ejemplos.
Revisión de DMVs
demo
DMVs útiles para desempeño…
sys.dm_os_wait_statsSobre todo por el whitepaper “SQL Server 2005 Waits and Queues”, http://sqlcat.com/sqlcat/b/whitepapers/archive/2007/11/19/sql-server-2005-waits-and-queues.aspx
Lo que hace…Tiempos agregados de espera – registra cuando algo tiene que esperar y lo retiene. Registra la cuenta de las tareas que experimentan esta espera, el acumulado y el máximo tiempo. Hay 359 diferentes tipos de espera en SQL Server 2012, 65 más que SQL Server 2008 R2.
http://msdn.microsoft.com/en-us/library/ms179984.aspx
DMVs útiles para desempeño…
sys.dm_os_wait_statsSe recomienda usarla cuando:
Se quiera revisar el estado de salud de un sistema.Se necesite evaluar si hay desviaciones de una línea de base.Haya que determinar cuales “waits” están generando impacto en el desempeño a gran escala.
Veamosla en acción…
sys.dm_os_wait_stats
demo
DMVs útiles para desempeño…
sys.dm_os_wait_stats genera resultados agregados…No incluye datos a nivel de query y para ello es mejor…
sys.dm_os_waiting_tasksLa cual muestra todas las tareas esperando actualmente, no el agregado en el tiempo…
Se usa para identificar problemas repentinos en el desempeño.Rastreo hasta el query… Identificación de todos los tipos de espera (incluyendo blocking & locking) hasta el nivel de sentencia.
DMVs útiles para desempeño…
Práctica recomendada:Generar un JOIN con sys.dm_exec_requests en el campo waiting_task_address, luego con dm_exec_sql_text en el campo sql_handle para obtener el texto del query.
Use offsets para determinar la sentencia dentro del lote que está esperando.
Las sesiones > 50 son sesiones de usuario, así que se incluyen en el WHERE cuando se usa esta DMV.Veamos un ejemplo…
sys.dm_os_waiting_tasks
demo
DMVs útiles para el desempeño…
sys.dm_exec_query_statsAlmacena información de desempeño sobre los planes de query en memoria cache, pero los registros no persisten despues de que el plan ha sido removido del cache.Provee un “sql_handle” y “offsets” (enteros) para identificar la sentencia dentro del lote o procedimiento almacenado, usando sys.dm_exec_sql_text.Un registro por sentencia (query) dentro del plan en cache.
sys.dm_exec_query_stats
demo
Libro de referencia…
Conclusiones
Pequeña introducción a las DMVs.Lean el libro de referencia, los Books Online y sobre todo… experimenten mucho.Un DMV por si solo arroja mucha información, pero hay que realizar JOINS y cruzarlos para extraer información valiosa.Uno de los mejores ejemplos de DMV:
Adam Machanic’s Who Is Activehttp://tinyurl.com/WhoIsActive
Referencias
SQL Server 2008 R2 System Views Maphttp://www.microsoft.com/en-us/download/details.aspx?id=722
eBook gratuito “SQL Server DMV Starter Pack“http://www.red-gate.com/community/books/dynamic-management-views
Books Online: SQL Server Profilerhttp://msdn.microsoft.com/es-es/library/ms181091.aspx
Troubleshooting en SQL Server 2012 vía DMV
Guillermo Taylor F.Consultor Senior TI & Especialista SQL [email protected] http://mastergt68.wordpress.com