SQL Server: ¿cuales de mis consultas consumen más CPU?

Hoy es dejo unas sencillas queries que podéis ejecutar en la database master de vuestro SQL Server y detectar, por un lado, las 50 consultas que estadísticamente "más están tirando" de procesador en vuestro servidor de Base de Datos, y la otra query el uso de CPU por proceso.
SELECT TOP 50 total_worker_time/execution_count AS [Avg CPU Time],
(SELECT SUBSTRING(text,statement_start_offset/2,(CASE WHEN statement_end_offset = -1 then LEN(CONVERT(nvarchar(max), text)) * 2 ELSE statement_end_offset end -statement_start_offset)/2) FROM sys.dm_exec_sql_text(sql_handle)) AS query_text, *
FROM sys.dm_exec_query_stats
ORDER BY [Avg CPU Time] DESC
Por otro lado esta otra query te mostraría los procesos que corren dentro de SQL Server, ordenados por consumo de CPU (se informa de la CPU, comando, usuario que ejecuta el proceso, id del proceso, nombre del PC y última ejecución).

select cpu, spid into cpu_usage
from sysprocesses


select diff = p.cpu-u.cpu, p.cpu, p.program_name, p.loginame, p.spid, p.hostname, p.last_batch
from sysprocesses p join cpu_usage u on p.spid=u.spid
order by 1 desc

drop table cpu_usage


Espero os sirvan para optimizar todo lo posible e incrementar el rendimiento de vuestras aplicaciones, sobre todo si tenéis usuarios que se acuerdan de tí y de tu familia cada vez que padecen cualquiera de ellas. Nos vemos.

1 comentario :

  1. Really no matter if someone doesn't be aware of after that its up to other viewers that they will assist, so here it occurs.

    Also visit my page - Corporate Movers

    ResponderEliminar

Buscar en el Blog: