SQL Server SQL执行历史记录



您能告诉我们,我们需要用SQL语句提取服务器中执行的最后1年SQL(执行的1年历史SQL(吗?

我一直在使用以下版本的

  • SQL Server Management Studio v15.0.18369.0

  • SQL Server管理对象(SMO(v16.100.46041.41

    选择*自sys.dm_exec_query_stats AS t交叉应用系统.dm_exec_sql_text(t.sql_handle(按t.last_execution_time desc 订购

此查询仅返回3000行和6月17日的执行日期

你能告诉我是否有其他地方可以获取历史记录或任何其他第三方工具可以提取过去1年的SQL历史记录吗

谢谢

关于DMV有两件事需要注意。
  1. DMV中的数据是瞬态的,因为一旦从计划缓存中删除计划,它们就会被删除。因此,您不会在DMV中拥有所有查询
  2. 备份不包含DMV数据,除了sys.db_db_index_phycial_stats。阅读更多

因此,在您的情况下,如果您想监视查询,您几乎没有选择。

  1. 设置扩展事件(尽管与sql探查器相比它不是侵入性的,但由于设置方式的原因,它也可能导致性能问题(
  2. 使用sp_whoisative定期将结果保存到另一个表中。但是,由于捕获的时间表,在时间表之间的间隙中可能会遗漏一些语句。阅读有关捕获输出的更多信息
  3. 您可以使用第三方监控工具
  4. 您可以使用探查器。但是,由于您将其设置为观察每个tsql语句的方式,它可能会产生一些影响

Stack Exchange DBA 中的类似问题

最新更新