DBAtlas · Атлас эксплуатации баз данных

8651: Could not perform the operation because the requested memory grant was not available

SQL Server

Что это значит?

Выделение памяти, необходимое запросу, было недоступно, и операцию выполнить не удалось. В отличие от 8645, это не ожидание, а прямой отказ в предоставлении запрошенного большого блока памяти; обычно указывает на серьёзную нехватку памяти.

Почему возникает?

Доступная память запросов на сервере не может удовлетворить грант, запрошенный одним оператором (например, очень большой сортировкой/хешированием). Причиной могут быть чрезмерно высокие оценки памяти, низкий max server memory, внешняя нагрузка на память или низкий лимит Resource Governor — REQUEST_MAX_MEMORY_GRANT_PERCENT (группа рабочей нагрузки) или MAX_MEMORY_PERCENT (пул ресурсов).

Как исправить

Оптимизируйте запросы, раздувающие выделения памяти (обновление статистики, правильное индексирование, разбиение запроса). Отслеживайте общую и доступную память; проверьте параметр max server memory и нагрузку на память со стороны внешних приложений. Если используется Resource Governor, проверьте параметры REQUEST_MAX_MEMORY_GRANT_PERCENT группы рабочей нагрузки и MAX_MEMORY_PERCENT пула. Перенесите пакетные задания, интенсивно использующие память, на часы низкой нагрузки.

Открыть в DBAtlas →

Ещё по этой СУБД