[この質問は重複してクローズされる可能性が高いため。]
SQL Serverが再起動されていない場合(およびプランが削除されていない場合など)、プランキャッシュでクエリを見つけることができる場合があります。
SELECT t.[text]
FROM sys.dm_exec_cached_plans AS p
CROSS APPLY sys.dm_exec_sql_text(p.plan_handle) AS t
WHERE t.[text] LIKE N'%something unique about your query%';
Management Studioがクラッシュしたためにファイルを紛失した場合は、ここでリカバリファイルを見つけることができる場合があります:
C:\Users\<you>\Documents\SQL Server Management Studio\Backup Files\
それ以外の場合は、クエリ履歴を保存するために、EdHarperの回答で述べたSSMSTools Packなど、他の何かを使用する必要があります。ただし、SQLServer2012以降では無料ではありません。または、ログイン名またはホスト名でフィルタリングされた軽量トレースを設定できます(ただし、これにはプロファイラーではなくサーバー側トレースを使用してください)。
@ Nenad-Zivkovicがコメントしたように、sys.dm_exec_query_stats
に参加すると役立つ場合があります last_execution_time
で並べ替えます :
SELECT t.[text], s.last_execution_time
FROM sys.dm_exec_cached_plans AS p
INNER JOIN sys.dm_exec_query_stats AS s
ON p.plan_handle = s.plan_handle
CROSS APPLY sys.dm_exec_sql_text(p.plan_handle) AS t
WHERE t.[text] LIKE N'%something unique about your query%'
ORDER BY s.last_execution_time DESC;