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.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

Deixe uma resposta

Terminal de Informação