select distinct top 10
substring(t.text, (s.statement_start_offset/2)+1, (((case s.statement_end_offset when -1 then datalength(t.text) else s.statement_end_offset end) - s.statement_start_offset)/2) + 1) as SqlText
, (case when s.statement_start_offset > 0 then substring(t.text, 0, (s.statement_start_offset/2)+1) else '' end) as SqlParameters
, s.execution_count as ExecutionCount
, (s.max_elapsed_time/1000) as MaxElapsedTimeMs
, (s.min_elapsed_time/1000) as MinElapsedTimeMs
, isnull((s.total_elapsed_time/1000) / nullif(s.execution_count, 0), 0) as AvgElapsedTimeMs
, s.creation_time as LogCreatedOn
, s.last_execution_time as LastExecutionTime
, isnull(s.execution_count / nullif(datediff(s, s.creation_time, getdate()), 0), 0) as FrequencyPerSec
from
sys.dm_exec_query_stats as s
cross apply
sys.dm_exec_sql_text(s.sql_handle) as t
order by
isnull((s.total_elapsed_time/1000) / nullif(s.execution_count, 0), 0) desc
substring(t.text, (s.statement_start_offset/2)+1, (((case s.statement_end_offset when -1 then datalength(t.text) else s.statement_end_offset end) - s.statement_start_offset)/2) + 1) as SqlText
, (case when s.statement_start_offset > 0 then substring(t.text, 0, (s.statement_start_offset/2)+1) else '' end) as SqlParameters
, s.execution_count as ExecutionCount
, (s.max_elapsed_time/1000) as MaxElapsedTimeMs
, (s.min_elapsed_time/1000) as MinElapsedTimeMs
, isnull((s.total_elapsed_time/1000) / nullif(s.execution_count, 0), 0) as AvgElapsedTimeMs
, s.creation_time as LogCreatedOn
, s.last_execution_time as LastExecutionTime
, isnull(s.execution_count / nullif(datediff(s, s.creation_time, getdate()), 0), 0) as FrequencyPerSec
from
sys.dm_exec_query_stats as s
cross apply
sys.dm_exec_sql_text(s.sql_handle) as t
order by
isnull((s.total_elapsed_time/1000) / nullif(s.execution_count, 0), 0) desc