En yüksek ortalama CPU zamanı ile sorguları bulmak için basit bir sorguyu çalıştırmaya çalışıyorum. kod anlamıyla here den-yapıştırılan kopya edilir:sözdizimi hatası CROSS APPLY
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;
Sorun, SQL Server sys.dm_exec_sql_text
için parametre satırında 8'de bir sözdizimi hatasıyla ilgili olduğunu: qs.sql_handle
unhelpfully okur
Incorrect syntax near '.'.
Yapamam Hayatımın için sorgunun nesi yanlış olduğunu bul. Herhangi bir fikir?
Uyumluluk seviyelerini tamamen unutmuşum! SQL Server 2008 R2 ile çalışıyorum, ancak bu özel db'de uyumluluk düzeyi 80 olarak ayarlandı (iyi bir neden olmadan). – vlad
Bu cevap çalışır, ancak saklı bir yordamda böyle bir sorguyu yürütmek mümkün mü? Çünkü saklı yordamında 'USE master'ı kullanamazsınız. – jtate