1. Guillermo Taylor F.
Consultor Senior TI & Especialista SQL Server
guillermotaylor@hotmail.com
http://mastergt68.wordpress.com
2. Escenarios de “troubleshooting”
¿Qué son los DMV o DMO?
Arquitectura
DMVs útiles para desempeño
Waits
Waiting Tasks
Exec Queries
Conclusiones
Documentación y referencia
3. 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í…
4. Objetos en SQL Server
Esquema SYSTEM
Utilización o consumo de recursos del sistema
Información valiosa sobre:
Conexiones
Sesiones
Transacciones
Sentencias T-SQL
Procesos
Solo para SQL Server 2005 y superior
5.
6. 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)
7. 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.
8.
9. sys.dm_os_wait_stats
Sobre todo por el whitepaper “SQL Server 2005
Waits and Queues”,
http://sqlcat.com/sqlcat/b/whitepapers/archive/20
07/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
10. sys.dm_os_wait_stats
Se 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…
11.
12. sys.dm_os_wait_stats genera resultados
agregados…
No incluye datos a nivel de query y para ello es
mejor…
sys.dm_os_waiting_tasks
La 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.
13. 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…
14.
15. sys.dm_exec_query_stats
Almacena 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.
16.
17.
18. 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 Active
http://tinyurl.com/WhoIsActive
19. SQL Server 2008 R2 System Views Map
http://www.microsoft.com/enus/download/details.aspx?id=722
eBook gratuito “SQL Server DMV Starter Pack“
http://www.redgate.com/community/books/dynamicmanagement-views
Books Online: SQL Server Profiler
http://msdn.microsoft.com/eses/library/ms181091.aspx
20. Guillermo Taylor F.
Consultor Senior TI & Especialista SQL Server
guillermotaylor@hotmail.com
http://mastergt68.wordpress.com