我们有一个 DMV 查询,它每 10 分钟执行一次并插入使用情况统计信息,例如 SESSION_CURRENT_DATABASE, SESSION_LAST_COMMAND_STARTTIME
等。据说过去 2 年一直运行良好。
今天,数据过度摄取团队通知我们最后显示的记录来自 6/10。所以我们发现这个工作已经被卡住了 14 天,没有执行新的统计数据。我们立即重新启动了这项工作,并且从早上开始就成功执行了,但基本上我们在这 14 天期间丢失了数据。有没有办法让我们在 6/10-6/24 之间在 $SYSTEM.DISCOVER
上执行这个 DMV 查询来恢复过去 14 天的数据?
还是所有的希望都破灭了?
DMV 查询:
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
答案 0 :(得分:1)
除非实例已重新启动或数据库已分离,否则我不会说它“消失了”。例如,用于过程使用的 dmv 中应该仍然有数据,但您将无法专门重新创建 10 天前的样子。
通过回顾您已有的 2 年数据,您可以大致了解一下,并了解是否存在峰值或持续使用情况。然后,获取今天 DMV 的快照,并将其推回 14 天以大致了解使用情况。