文档中 sys.dm_exec_query_stats 警告的实际影响是什么?

Joe*_*ish 11 sql-server dmv

文档sys.dm_exec_query_stats状态如下:

如果服务器上当前正在执行工作负载,则对 sys.dm_exec_query_stats 的初始查询可能会产生不准确的结果。可以通过重新运行查询来确定更准确的结果。

我有时会在活动工作负载期间查询该 DMV,并希望获得准确的结果。我不知道如何在实践中应用上述警告。我是否应该始终查询 DMV 两次并使用第二个结果集,因为这样会更准确?这感觉有点牵强。我是否需要了解 DMV 可能不准确的方式,以便我可以将其纳入分析?如果是这样,会出现什么类型的错误:丢失的行、过时的值、不一致的行或其他什么?

sys.dm_exec_query_stats在活动工作负载期间使用时的最佳做法是什么?

Sea*_*ser 7

我已经更新了文档,使其措辞更加直接。目的是告诉用户对 DMV 运行查询将只为已完成的项目产生输出,而不是为进行中的项目产生输出。因此,运行整个工作负载以确保捕获所有工作负载。

新措辞如下,并应用了先前措辞所包含的各种 DMV。

sys.dm_exec_query_stats 的结果可能因每次执行而异,因为数据仅反映已完成的查询,而不是仍在进行中的查询。


Pau*_*ite 5

我不知道如何在实践中应用上述警告。

那是因为它是模糊的。文档页面末尾有一个空格可以留下反馈。这几乎是人们能够查看该文档页面的历史记录并了解为什么添加该警告的唯一方法,如果它仍然有必要,或需要更新。

我快速浏览了 SQL Server 2017 CU 15 上的实现,似乎没有特别的理由期待不一致(或“不准确”),除了总数仅在每个语句执行结束时更新。