Karygalock1,
Uma alternativa gráfica para realizar este procedimento seria através da ferramenta Activity Monitor existente dentro do Management Studio, o qual já implementa também uma conjunto de DMVs e DMFs que podem lhe ajudar a identificar diversos cenários.
Veja se este link da documentação oficial Microsoft te ajuda:
Abrir o Monitor de Atividade (SSMS) - SQL Server | Microsoft Docs
Este outro link da documentação também é uma importante fonte de aprendizado:
Monitoramento de desempenho e atividade de servidor - SQL Server | Microsoft Docs
Em adicional, vou compartilhar alguns exemplos da documentação oficial da DMV: sys.dm_exec_query_stats
Localizando as consultas TOP N
O exemplo a seguir retorna informações sobre as cinco principais consultas classificadas pelo tempo médio de CPU. Este exemplo agrega as consultas de acordo com o hash de consulta
para que as consultas logicamente equivalentes sejam agrupadas pelo respectivo consumo de recursos cumulativo.
SELECT TOP 5 query_stats.query_hash AS "Query Hash",
SUM(query_stats.total_worker_time) / SUM(query_stats.execution_count) AS "Avg CPU Time",
MIN(query_stats.statement_text) AS "Statement Text"
FROM
(SELECT QS.*,
SUBSTRING(ST.text, (QS.statement_start_offset/2) + 1,
((CASE statement_end_offset
WHEN -1 THEN DATALENGTH(ST.text)
ELSE QS.statement_end_offset END
- QS.statement_start_offset)/2) + 1) AS statement_text
FROM sys.dm_exec_query_stats AS QS
CROSS APPLY sys.dm_exec_sql_text(QS.sql_handle) as ST) as query_stats
GROUP BY query_stats.query_hash
ORDER BY 2 DESC;
Retornando agregações de contagem de linhas para uma consulta
SELECT 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
) AS query_text,
qt.dbid, dbname= DB_NAME (qt.dbid), qt.objectid,
qs.total_rows, qs.last_rows, qs.min_rows, qs.max_rows
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS qt
WHERE qt.text like '%SELECT%'
ORDER BY qs.execution_count DESC;
Veja estes outros links úteis:
Funções
e exibições de gerenciamento dinâmico relacionadas à execução (Transact-SQL)
Transact-SQL
de sys.dm_exec_sql_text
Transact-SQL
de sys.dm_exec_query_plan
Transact-SQL
de sys.dm_exec_procedure_stats
Transact-SQL
de sys.dm_exec_trigger_stats
sys.dm_exec_cached_plans (Transact-SQL)
Pedro Antonio Galvão Junior [MVP | MCC | MSTC | MIE | MTAC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados Relacional e Data Warehouse | Professor Universitário | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]