的文档说明sys.dm_exec_query_stats
以下内容:
如果服务器上当前正在执行工作负载,则 sys.dm_exec_query_stats 的初始查询可能会产生不准确的结果。通过重新运行查询可以确定更准确的结果。
我有时会在活动工作负载期间查询该 DMV,并希望获得准确的结果。我不知道如何在实践中应用上述警告。我是否应该始终查询 DMV 两次并使用第二个结果集,因为这样会更准确?这感觉有点牵强。我是否需要了解 DMV 可能不准确的方式,以便我可以将其纳入我的分析中?如果是这样,可能会出现什么样的不准确:缺少行、过时的值、不一致的行或其他什么?
在活动工作负载期间使用时的最佳做法是什么sys.dm_exec_query_stats
?
我已经更新了文档,使其措辞更加直截了当。目的是告诉用户,对 DMV 运行查询将只为已完成的项目生成输出,而不是为进行中的项目生成输出。因此,完整地运行工作负载以确保捕获所有内容。
新的措辞如下,并应用了之前的措辞所包含的各种 DMV。
那是因为它是模糊的。文档页面末尾有一个空格可以留下反馈。这几乎是人们能够查看该文档页面的历史并查看为什么添加该警告的唯一方法,如果它仍然有必要,或者需要更新。
我快速浏览了 SQL Server 2017 CU 15 上的实现,似乎没有什么特别的理由可以预期不一致(或“不准确”),除了总数仅在每个语句执行结束时更新。