在 SQL Server Management Studio (SSMS) 中跟踪过去的查询
有时,您需要查看以前在 SSMS 中运行的查询。 虽然 SSMS 没有内置的查询历史记录跟踪器,但有一些解决方法。
查找查询历史数据
如果 SQL Server 实例在运行查询后尚未重新启动,则查询计划可能仍位于计划缓存中。 尝试这个查询:
<code class="language-sql">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'%<unique_query_identifier>%';</code>
将 <unique_query_identifier>
替换为您记得的查询的一部分。
如果 SSMS 崩溃并且您丢失了查询历史记录,请检查这些恢复文件:
<code>C:\Users\<username>\Documents\SQL Server Management Studio\Backup Files\</code>
使用第三方工具和追踪
要进行持续的查询历史记录监控,请探索 SSMS 工具包等工具。 或者,您可以设置按您的登录名或主机名过滤的轻量级 SQL Server 跟踪。
使用 sys.dm_exec_query_stats 的详细查询历史记录
正如 Nenad-Zivkovic 指出的,使用 sys.dm_exec_query_stats
提供更全面的查询历史记录详细信息。此查询将其与其他系统视图结合起来,按上次执行时间对结果进行排序:
<code class="language-sql">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'%<unique_query_identifier>%' ORDER BY s.last_execution_time DESC;</code>
请记住将 <unique_query_identifier>
替换为查询的唯一部分。
以上是如何在 SQL Server Management Studio 中检索和跟踪查询历史记录?的详细内容。更多信息请关注PHP中文网其他相关文章!