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


10

文档sys.dm_exec_query_stats状态如下:

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

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

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

Answers:


6

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

以下是新的措辞,并应用了先前措辞并入的各种DMV。

每次执行时sys.dm_exec_query_stats的结果可能会有所不同,因为数据仅反映完成的查询,而不反映正在进行的查询。


4

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

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

我快速浏览了SQL Server 2017 CU 15上的实现,除了没有在每个语句执行结束时才更新总数之外,似乎没有特殊的原因可以期望出现不一致(或“不准确性”)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.