Настройка минимальной памяти на запрос (параметр конфигурации сервера)

Применимо к:SQL Server

В этом разделе описываются способы настройки параметра конфигурации сервера min memory per query в SQL Server с помощью среды SQL Server Management Studio или Transact-SQL. Параметр min memory per query определяет минимальный объем памяти (в килобайтах), выделяемый для выполнения запроса. Он также называется минимальным временно предоставляемым буфером памяти. Например, если параметру min memory per query присвоено значение, равное 2048 КБ, запрос гарантированно получит указанный объем памяти. Значение по умолчанию — 1 024 КБ. Минимальное значение — 512 КБ, максимальное — 2 147 483 647 KB (2 ГБ).

В этом разделе

Перед началом

Ограничения

  • Параметр min memory per query имеет приоритет над параметром index create memory. Если изменяются оба параметра и значение параметра index create memory меньше значения min memory per query, то в системе отобразится предупреждающее сообщение, но это значение будет установлено. При выполнении запроса будет выдано еще одно аналогичное предупреждение.

Рекомендации

  • Это расширенный параметр, и изменять его следует только опытным администраторам баз данных или сертифицированным по SQL Server специалистам.

  • Обработчик запросов SQL Server пытается определить оптимальный объем памяти, выделяемой запросу. Параметр min memory per query позволяет администратору указать минимальный размер памяти, который получает каждый запрос. Запросы обычно получают объем памяти больше указанного значения, если выполняют хэширование или сортировку больших объемов данных. Увеличение значения параметра min memory per query может повысить производительность для малых и средних запросов, однако это может привести к повышению конкуренции за память. Параметр min memory per query включает память, выделяемую для операций сортировки.

  • Не следует задавать слишком большое значение для параметра конфигурации min memory per query, особенно в случае высоконагруженных систем. Тогда выполнение запроса задерживается1 до момента освобождения необходимого объема памяти либо истечения времени ожидания, указанного в параметре конфигурации query wait. В случае доступности объема памяти, превышающего заданное для запроса минимальное значение, запросу могут быть выделены дополнительные ресурсы при условии их эффективного использования.

1 В этом случае типом ожидания, как правило, является RESOURCE_SEMAPHORE. Для получения дополнительной информации см. sys.dm_os_wait_stats (Transact-SQL).

Безопасность

Разрешения

Разрешения на выполнение хранимой процедуры sp_configure без параметров или только с первым параметром по умолчанию предоставляются всем пользователям. Для выполнения процедуры sp_configure с обоими параметрами для изменения параметра конфигурации или запуска инструкции RECONFIGURE необходимо иметь разрешение ALTER SETTINGS на уровне сервера. Разрешение ALTER SETTINGS неявным образом предоставлено предопределенным ролям сервера sysadmin и serveradmin .

Использование среды SQL Server Management Studio

Настройка параметра min memory per query

  1. В обозревателе объектов щелкните правой кнопкой мыши сервер и выберите пункт Свойства.

  2. Щелкните узел Память .

  3. В поле Минимальный объем памяти для запроса введите минимальный объем памяти (в килобайтах), который будет выделен запросу для выполнения.

Использование Transact-SQL

Настройка параметра min memory per query

  1. Установите соединение с компонентом Компонент Database Engine.

  2. На панели «Стандартная» нажмите Создать запрос.

  3. Скопируйте следующий пример в окно запроса и нажмите кнопку Выполнить. В этом примере показано использование хранимой процедуры sp_configure для задания значения параметра min memory per query равным 3500 КБ.

USE AdventureWorks2022;  
GO  
EXEC sp_configure 'show advanced options', 1;  
GO  
RECONFIGURE ;  
GO  
EXEC sp_configure 'min memory per query', 3500 ;  
GO  
RECONFIGURE;  
GO    

Продолжение: после настройки параметра min memory per query

Параметр вступает в силу немедленно, без перезапуска сервера.

См. также:

RECONFIGURE (Transact-SQL)
Параметры конфигурации сервера (SQL Server)
sp_configure (Transact-SQL)
Настройка параметра конфигурации сервера index create memory
sys.dm_os_wait_stats (Transact-SQL)
sys.dm_exec_query_memory_grants (Transact-SQL)