DMV para optimización en SQL Server Tip 05

Esta serie de blogs incluye T-SQL y DMV que pueden ser utilizadas para detectar problemas de rendimiento de SQL Server y su posible solución.

 

SQL Server 2008 incluye el system_health que es un XEvent que nos ayuda a realizar resolución de problemas de desempeño del motor de SQL Server. Si queremos ver que este está ejecución, corremos el siguiente comando:

 

select * from sys.dm_xe_sessions

image

 

Si queremos ver los resultados de este XEvent ejecutamos el siguiente T-SQL

 

select CAST(xet.target_data as xml) from sys.dm_xe_session_targets xet
join sys.dm_xe_sessions xe
on (xe.address = xet.event_session_address)
where xe.name = 'system_health'

 

 

Esto T-SQL nos dará el resultado en formato XML con al información correspondiente.

 

image

 

Si abrimos ese XML veremos algo parecido a lo siguiente

image

 

Si el motor de SQL Server está teniendo problemas, entonces podemos revisar ese XML que contiene entre otras cosas lo siguiente:

 

  • El sql_text y session_id para cualquier sesión con error de severidad >=20
  • El sql_text y session_id para cualquier sesión con error de memoria tales como  17803, 701, etc 
  • Cualquier registro de "non-yielding problems” por ejemplo errores in tales como Msg 17883
  • La callstack, sql_text, y session_id de cualquier sesción que haya esperado por "external waits” o "pre-emptive waits".
  • La callstack, sql_text, y session_id de cualquier sesción que tenga esperas en “latches” mayor a 15 segundos
  • The callstack, sql_text, and session_id for any sessions who have waited on locks for > 30 seconds
  • The callstack, sql_text, and session_id for any session that have waited for an extended period of time for "external" waits or "pre-emptive waits".

 

 

Saludos,

Ing. Eduardo Castro Martínez

http://comunidadwindows.org

http://ecastrom.blogspot.com

Comments

Popular posts from this blog

Cómo identificar consultas más pesadas en SQL Server

Power View en SQL Server 2012 Primer Entrega

Machine Learning Services con SQL Server Managed Instance