Apenas verificando para ver se alguém testemunhou o mesmo e tentou uma correção ou foi corrigido:
Problema :
Eu corri abaixo da consulta no stackoverflow2013
banco de dados
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;
e ao verificar o relatório do painel do SSMS para GrantedQueryMemory, o valor mostra cerca de 62 GB, o que não parece correto ao coletar o mesmo do dmv
De dmv mostra 62 MB
Pareceu-me um bug, então relatado aqui
Usando o XE para capturar a consulta que está sendo executada pelo painel, ele apenas extrai o valor bruto do arquivo
sys.dm_exec_requests
. Aqui está a consulta:Observe o
r.granted_query_memory
no select, sem multiplicação ou divisão sendo realizada nele. Observe que esse número está realmente em páginas. Quando executo sua consulta, recebo esses números diferentes:sys.dm_exec_requests.granted_query_memory
= 1.464 páginas (vezes 8 KB por página = 11.712 KB)sys.dm_exec_query_stats.last_grant_kb
= 11.712 kilobytesEste é exatamente o número de bytes concedidos (11.712 * 1.024 = 11.993.088).
Portanto, parece que o bug está no código da interface do usuário do SSMS aqui, e não na consulta, pois está obtendo 1.464 de volta da consulta e deve ser multiplicado por 8 (conversão de páginas para KB) e 1.024 (conversão acidental de KB para bytes). Boa chamada relatando isso para a Microsoft.
Recentemente, relatei exatamente o mesmo tipo de problema de cálculo para a Microsoft em um relatório do Query Store, que está documentado neste Q&A: What is 'Log Memory' in Query Store 2017 . Parece um problema comum =)