是否可以在特定时间段之间执行 DMV 查询?

Is it possible to execute DMV queries between certain time periods?

我们有一个 DMV 查询,每 10 分钟执行一次并插入使用情况统计信息,例如 SESSION_CURRENT_DATABASE, SESSION_LAST_COMMAND_STARTTIME,等等。据说过去 2 年 运行 没问题。

今天我们收到数据超摄取团队的通知,显示的最后记录是从 6 月 10 日开始的。所以我们发现这个工作已经停滞了 14 天没有执行新的统计信息。我们立即重新启动了作业,它从早上开始就成功执行了,但基本上我们已经丢失了这 14 天期间的数据。我们有没有办法在 $SYSTEM.DISCOVER 的 6/10-6/24 之间执行此 DMV 查询以恢复过去 14 天的数据?

还是希望破灭?

车管所查询:

SELECT [SESSION_ID]
      ,[SESSION_SPID]
      ,[SESSION_CONNECTION_ID]
      ,[SESSION_USER_NAME]
      ,[SESSION_CURRENT_DATABASE]
      ,[SESSION_USED_MEMORY]
      ,[SESSION_PROPERTIES]
      ,[SESSION_START_TIME]
      ,[SESSION_ELAPSED_TIME_MS]
      ,[SESSION_LAST_COMMAND_START_TIME]
      ,[SESSION_LAST_COMMAND_END_TIME]
      ,[SESSION_LAST_COMMAND_ELAPSED_TIME_MS]
      ,[SESSION_IDLE_TIME_MS]
      ,[SESSION_CPU_TIME_MS]
      ,[SESSION_LAST_COMMAND_CPU_TIME_MS]
      ,[SESSION_READS]
      ,[SESSION_WRITES]
      ,[SESSION_READ_KB]
      ,[SESSION_WRITE_KB]
      ,[SESSION_COMMAND_COUNT]
FROM $SYSTEM.DISCOVER_SESSIONS

除非实例已重新启动或数据库已分离,否则我不会说它“消失”了。例如,程序使用的 dmv 中应该仍然有数据,但您将无法专门重新创建 10 天前的样子。

您可以通过回顾您已有的 2 年数据来大致了解,并了解是否存在峰值或一致的使用情况。然后,抓取今天的 DMV 快照,并向后推断 14 天,以大致了解使用情况。