10
単純なクエリを実行して、平均CPU時間が最も長いクエリを検索しようとしています。コードは文字通りhereから、貼り付けコピーされます。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;
問題があり、SQL Serverはsys.dm_exec_sql_text
にパラメータでの8行目に構文エラーについて不平を言っている:qs.sql_handle
unhelpfully読み込み
Incorrect syntax near '.'.
私はできません私の人生の間、質問に何が間違っているのかを理解してください。何か案は?
互換レベルについて完全に忘れました!私はSQL Server 2008 R2で作業していますが、互換性レベルはこの特定のデータベースでは80に設定されています(理由はありません)。 – vlad
この回答は機能しますが、このようなクエリをストアドプロシージャで実行することは可能ですか?なぜならストアドプロシージャでは 'USE master; 'を使うことができないからです。 – jtate