Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Обратная связь по грантам памяти (memory grant feedback) в SQL Server 2019

Блог компании OTUS SQL *Microsoft SQL Server *
Перевод
Всем привет! В преддверии старта курса «MS SQL Server разработчик», подготовили для вас еще один интересный перевод.




Если оптимизатор неправильно вычисляет необходимый объем памяти для выполнения запроса, то это будет либо пустая трата памяти, которую мог бы использовать другой процесс, либо будет слив данных на диск (disk spill). Для решения этой проблемы Microsoft добавила обратную связь по грантам памяти (Memory Grant Feedback). В этой статье Грег Ларсен (Greg Larsen) объясняет, как это работает.

Обратная связь по грантам памяти (Memory Grant Feedback) в более ранних версиях SQL Server (до SQL Server 2019 или 15.x) была реализована только для запросов, выполняющихся в пакетном режиме (batch mode). Запросы в пакетном режиме выполняют сканирование и вычисление до 900 строк одновременно, в отличие от запросов в строковом режиме (row mode), когда за раз обрабатывается только одна строка. В версии 15.x обратная связь по грантам памяти была расширена для поддержки запросов в строковом режиме.

Что такое обратная связь по грантам памяти? Это процесс корректировки вычисления памяти, необходимой для запроса с учетом того, сколько памяти было использовано при его предыдущих выполнениях. Это означает, что если кэшированный запрос использовал слишком много памяти при последнем выполнении, то SQL Server уменьшит выделение памяти при его следующем выполнении. Или если SQL Server обнаружил запрос, использующий диск из-за того, что в последний раз ему было выделено недостаточно памяти, то он увеличит память для запроса. Целью обратной связи по грантам памяти является корректировка требований к памяти при каждом выполнении запроса до тех пор, пока запрос не будет использовать объем памяти, соответствующий количеству обрабатываемых строк.
Читать дальше →
Всего голосов 9: ↑9 и ↓0 +9
Просмотры 1.5K
Комментарии 0