sys.dm_exec_sql_text
にはdbid
の列があるので、それをフィルタリングすることができます。たとえば、私は他の回答からクエリを取り、master
に対してクエリのwhere句フィルタリングを追加しました:いないすべてのクエリは、右のデータベースコンテキスト(またはまったくデータベースコンテキストを)持っている
SELECT deqs.last_execution_time AS [Time], dest.TEXT AS [Query]
FROM sys.dm_exec_query_stats AS deqs
CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest
WHERE dest.dbid = DB_ID('master')
ORDER BY deqs.last_execution_time DESC
注意を。たとえば、異なるデータベースにある2つのテーブルを結合するクエリがある場合、1つのdbidのみが表示されます。実行中のコンテキストであり、クエリで参照されているデータベースのいずれかである場合もあれば、そうでない場合もあります。したがって、フィルタを適用すると、実際に関心のあるクエリは非表示になる可能性があります。sys.dm_exec_cached_plans
やsys.dm_exec_query_plan
などの他のDMOからXMLを掘り下げてパラメータを取得できます。キャプチャしたクエリに対して既に実行計画がある場合は、SQL Sentry Plan Explorerのようなツールを使用するほうが、XMLのゴブを自分自身で実行するよりもずっと簡単になります。
免責事項:私はSQL Sentryのために働き、コミュニティに無料のツールを提供しています。
[SQL Server Management Studio内で実行されたクエリを表示するにはどうすればよいですか?](http://stackoverflow.com/questions/2449634/how-do-i-view-executed-queries-within-sql-server -Management-studio) –
あなたの以前の質問では、@Mike Mooneyがこれに答えているようです。 –