Как исследовать предупреждения о предоставлении памяти?

Jan 01 2021

Видел это предупреждение из запроса в кеше планов

<Warnings>
     <MemoryGrantWarning GrantWarningKind="Excessive Grant" RequestedMemory="2751552" GrantedMemory="2751552" MaxUsedMemory="768" />
</Warnings>

Представляет ли RequestedMemory байты или килобайты?

Как устранить причину появления этого предупреждения?

Ответы

1 J.D. Jan 01 2021 at 08:53

Обычно это является результатом (хотя я считаю, что это могут быть и другие причины) из-за проблем с оценкой мощности . Вам следует взглянуть на Фактический план выполнения и посмотреть, есть ли у вас какие-либо ошибки в оценке, сравнив общее предполагаемое количество строк с фактическим количеством строк . Если вы обновите свой вопрос с помощью плана выполнения (вы можете загрузить его в « Вставить план» и связать его со своим вопросом), то мы сможем дать вам более четкое представление об источнике вашей проблемы с чрезмерным выделением памяти.