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

8645: A time out occurred while waiting for memory resources to execute the query

SQL Server

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

Истёк тайм-аут запроса при ожидании на семафоре ресурсов (resource semaphore) выделения памяти (memory grant), необходимого для выполнения. Поскольку нехватка памяти не позволила выделить грант, операция была отменена.

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

Параллельные запросы, интенсивно использующие память (большие сортировки, hash join, hash-агрегаты), заняли весь пул памяти запросов; новые запросы встали в очередь на семафоре и завершились по тайм-ауту. Первопричина — завышенные оценки выделения памяти (устаревшая статистика, плохие планы) или недостаток памяти сервера.

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

Определите запросы, ожидающие или удерживающие память, с помощью sys.dm_exec_query_memory_grants и DMV семафора ресурсов. Обновите статистику и исправьте планы, вызывающие завышенные выделения памяти (подходящие индексы, лучшие оценки). Снизьте параллелизм запросов, интенсивно использующих память; при необходимости ограничьте выделения памяти с помощью Resource Governor. Проверьте конфигурацию памяти сервера (max server memory).

Открыть в DBAtlas →

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