
Автор: Jay Choe, Microsoft SQL Server Engine. Understanding SQL server memory grant
В этой статье описывается, как в Microsoft SQL Server организовано предоставление запросам памяти. Выделенную запросам память (эту область памяти называют рабочим буфером запросов – «Query Work Buffer») сервер использует для временного хранения данных при сортировке и соединении строк. Такое предоставление памяти имеет название «Grant», потому что сервер требует, чтобы для запросов происходило резервирование памяти перед её фактическим использованием. Такое резервирование повышает надежность исполнения запросов для нагруженных серверов, поскольку запрос с зарезервированной памятью скорее всего не выйдет за пределы памяти сервера во время исполнения, и сервер не позволит одному запросу забрать всю память. В статье я опишу, как SQL Server оценивает потребность запроса в памяти и как он управляет объёмом выделяемой памяти, когда за ресурс конкурируют несколько запросов.