只是检查一下是否有人目睹了相同的情况并尝试修复或已修复:
问题:
stackoverflow2013
我在数据库中运行了以下查询
select
ParentId as [Post Link],
count(id)
from posts
where posttypeid = 2 and len(body) <= 200
and (body like '%hank%')
group by parentid
having count(id) > 1
order by count(id) desc;
当检查 GrantedQueryMemory 的 SSMS 仪表板报告时,该值显示大约 62 GB,这在从 dmv 收集时似乎不正确
从 dmv 显示 62 MB
在我看来它像一个错误所以报告在这里
使用 XE 捕获仪表板正在执行的查询,它只是从
sys.dm_exec_requests
. 这是查询:注意
r.granted_query_memory
选择中的 ,没有对其执行乘法或除法。请注意,此数字实际上以页数为单位。 当我运行您的查询时,我得到这些不同的数字:sys.dm_exec_requests.granted_query_memory
= 1,464 页(乘以每页 8KB = 11,712 KB)sys.dm_exec_query_stats.last_grant_kb
= 11,712 千字节这正是授予的字节数 (11,712 * 1,024 = 11,993,088)。
所以看起来错误出现在此处的 SSMS 用户界面代码中,而不是查询中,因为它从查询中返回 1,464,然后必须乘以 8(从页面转换为 KB),然后乘以 1,024(从KB 到字节)。很好的电话报告给微软。
我最近在查询存储报告中向 Microsoft 报告了完全相同类型的计算问题,此问答中记录了该问题:什么是查询存储 2017 中的“日志内存”。似乎是一个常见问题 =)