Конфигурация сервера: минимальная память на запрос
Область применения: 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 включает память, выделяемую для операций сортировки.
Не устанавливайте слишком высокий параметр конфигурации минимальной памяти для сервера запросов, особенно в очень занятых системах, так как запрос должен ждать1 , пока он не сможет обеспечить минимальную запрошенную память или до тех пор, пока не будет превышено значение, указанное в параметре конфигурации сервера ожидания запроса. Если для выполнения запроса доступно больше памяти, чем указанное минимальное значение, запрос может использовать дополнительную память, если память может эффективно использоваться запросом.
1 В этом сценарии тип ожидания обычно RESOURCE_SEMAPHORE
является. Дополнительные сведения см. в sys.dm_os_wait_stats.
Разрешения
sp_configure
Разрешения на выполнение без параметров или только с первым параметром предоставляются всем пользователям по умолчанию. Чтобы выполнить sp_configure
оба параметра для изменения параметра конфигурации или запуска RECONFIGURE
инструкции, пользователю необходимо предоставить ALTER SETTINGS
разрешение на уровне сервера. Разрешение ALTER SETTINGS
неявным образом предоставлено предопределенным ролям сервера sysadmin и serveradmin.
Использование SQL Server Management Studio
В обозревателе объектов щелкните правой кнопкой мыши сервер и выберите пункт Свойства.
Выберите узел памяти.
В поле "Минимальный объем памяти на запрос" введите минимальный объем памяти (в килобайтах), чтобы выделить для выполнения запроса.
Использование Transact-SQL
Соединитесь с ядром СУБД .
На стандартной панели выберите пункт Создать запрос.
Скопируйте приведенный ниже пример в окно запроса и нажмите кнопку Выполнить. В этом примере показано использование хранимой процедуры sp_configure для задания значения параметра
min memory per query
равным3500
КБ.USE master; GO EXECUTE sp_configure 'show advanced options', 1; GO RECONFIGURE; GO EXECUTE sp_configure 'min memory per query', 3500; GO RECONFIGURE; GO EXECUTE sp_configure 'show advanced options', 0; GO RECONFIGURE; GO
Дальнейшие действия. После настройки минимальной памяти для каждого параметра запроса
Параметр вступает в силу немедленно, без перезапуска сервера.