I'm trying to run a simple query to find the queries with the highest average CPU time. The code is literally copy-pasted from here:
SELECT TOP 5 total_worker_time/execution_count AS [Avg CPU Time],
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 statement_text
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) AS st
ORDER BY total_worker_time/execution_count DESC;
Problem is, SQL Server is complaining about a syntax error in line 8 at the parameter to sys.dm_exec_sql_text
: qs.sql_handle
which unhelpfully reads
Incorrect syntax near '.'.
I cannot, for the life of me, figure out what's wrong with the query. Any ideas?