Encontrando as consultas mais lentas no servidor

Olá pessoal, tudo bem? Essa semana vou contribuir com um script bem útil para quem trabalha com tuning de consultas. Existem diversos aspectos que podem comprometer o desempenho num banco de dados. Já é de conhecimento de todos que grande parte desses problemas de performance que encontramos está muito relacionado às consultas mal modeladas. Bem, no primeiro instante que recebemos um reclamação de lentidão no ambiente de dados, por recomendação, é sempre bom partirmos para a análise das esperas presentes na instância, para diante dos resultados, identificarmos quais os caminhos devemos tomar para solucionar o problema. Porém, não será esse o nosso propósito neste poste. Deixarei essas questões para os próximos postes. Abaixo considero a identificação das cincos consultas mais lentas no servidor.

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

SELECT TOP 5
CAST(qs.total_elapsed_time / 1000000.0 AS DECIMAL(28, 2))
AS [Total Elapsed Duration (s)]
, qs.execution_count
, SUBSTRING (qt.text,(qs.statement_start_offset/2) + 1,
((CASE WHEN qs.statement_end_offset = -1
THEN LEN(CONVERT(NVARCHAR(MAX), qt.text)) * 2
ELSE
qs.statement_end_offset
END – qs.statement_start_offset)/2) + 1) AS [Individual Query]
, qt.text AS [Parent Query]
, DB_NAME(qt.dbid) AS DatabaseName
, qp.query_plan
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt
CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) qp
INNER JOIN sys.dm_exec_cached_plans cp
ON qs.plan_handle=cp.plan_handle
ORDER BY total_elapsed_time DESC

Um exemplo abaixo mostra o que a consulta gera como resultado.

23

Percebam que o retorno do resultado traz informações importantes, como duração decorrida da consulta, quantidade de vezes que foi executada, a consulta em si e o plano em cache, no qual considero ser o dado mais importante neste script, pois é através dele que poderemos analisar de forma coerente as decisões tomadas pelo SQL Server para trazer os Results Sets, além de nos dar uma ideia de como é possível melhoramos as consultas.

Por hoje é só, pois preciso também de descanso. (Risos!!).

Bom feriado à todos.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s