首页 > 数据库 > mysql教程 > 如何检索我的 SQL Server 查询历史记录?

如何检索我的 SQL Server 查询历史记录?

Susan Sarandon
发布: 2025-01-15 15:16:43
原创
763 人浏览过

How Can I Retrieve My SQL Server Query History?

在 SQL Server Management Studio (SSMS) 中恢复过去的 SQL 查询

与某些数据库系统(MySQL、PostgreSQL)不同,SQL Server 不会自动记录查询历史记录。 因此,检索过去的查询需要不同的方法。

检查缓存的执行计划

如果 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'%something unique about your query%';</code>
登录后复制

请记住将 '%something unique about your query%' 替换为查询的独特部分。

检查 SSMS 恢复文件

SSMS 意外崩溃后,您可能会在此目录中找到恢复文件:

<code>C:\Users\<your_username>\Documents\SQL Server Management Studio\Backup Files\</code>
登录后复制

第三方工具和服务器端跟踪

如果上述方法不成功,请考虑以下选项:

  • SSMS 工具包:此加载项提供高级功能,包括查询历史记录日志记录(注意:此功能在 SQL Server 2012 及更高版本中可能不是免费的)。
  • 服务器端跟踪:启用详细的事件跟踪,包括查询执行数据。 这是一种更强大的综合查询日志记录方法。

改进的查询统计

要显示按上次执行时间排序的缓存查询,请使用此增强型查询:

<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'%something unique about your query%'
ORDER BY s.last_execution_time DESC;</code>
登录后复制

这提供了最近查询活动的更有条理的视图。

以上是如何检索我的 SQL Server 查询历史记录?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板