Verificando as consultas que consomem mais no SQL Server

Olá pessoal…

Hoje vou mostrar como verificar as consultas SQL que mais consomem processamento (CPU) no SQL Server.

SQL Server
SQL Server

Para verificar basta fazer uma consulta na sys.dm_exec_query_stats juntamente com sys.dm_exec_sql_text e sys.dm_exec_query_plan. Abaixo o exemplo da query montada:

SELECT
	total_worker_time/execution_count AS Media_CPU,
	total_worker_time AS Total_CPU,
	total_elapsed_time/execution_count AS Media_Duracao,
	total_elapsed_time AS Total_Duracao,
	(total_logical_reads+total_physical_reads)/execution_count AS Media_Leituras,
	(total_logical_reads+total_physical_reads) AS Total_Leituras,
	execution_count AS Total_Execucoes,
	SUBSTRING(st.TEXT, (qs.statement_start_offset/2)+1,
		((CASE qs.statement_end_offset  WHEN -1 THEN datalength(st.TEXT)  
		ELSE qs.statement_end_offset  
		END - qs.statement_start_offset)/2) + 1
	) AS Consulta_SQL,
	query_plan AS Plano_Execucao
FROM
	sys.dm_exec_query_stats AS qs  
	cross apply sys.dm_exec_sql_text(qs.sql_handle) AS st  
	cross apply sys.dm_exec_query_plan (qs.plan_handle) AS qp 
ORDER BY
	1 DESC

No exemplo acima, buscamos as informações (como médias, consultas, etc), ordenando pelo consumo médio da CPU.

Abaixo um print da execução.

Resultado da query de consumo
Resultado da query de consumo

Referência: Stack Overflow

Bom pessoal, por hoje é só.
Abraços e até a próxima.

About Dan_Atilio

Analista e desenvolvedor de sistemas. Técnico em Informática pelo CTI da Unesp. Graduado em Banco de Dados pela Fatec Bauru. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor do projeto Terminal de Informação, onde são postados tutoriais e notícias envolvendo o mundo da tecnologia.

Deixe uma resposta