Оптимизация производительности сервера с помощью параметров конфигурации памяти

Компонент управления памятью в Microsoft SQL Server 2005 отменяет необходимость ручной настройки памяти, применявшейся в SQL Server. При запуске SQL Server происходит динамическое определение объема выделяемой для него памяти. Выделяемый объем памяти определяется исходя из объема, уже используемого операционной системой и другими приложениями. При изменении загрузки компьютера и SQL Server меняется и объем выделенной памяти. Дополнительные сведения см. в разделе Архитектура оперативной памяти.

Представленные ниже настройки конфигурации сервера могут использоваться для настройки использования памяти и регулирования производительности сервера:

  • min server memory
  • max server memory
  • max worker threads
  • index create memory
  • min memory per query

Параметр конфигурации сервера min server memory может быть использован для обеспечения того, чтобы SQL Server не освобождал память после достижения минимально установленного размера. Конкретное значение данного параметра указывается исходя из размера и функционирования текущего SQL Server. При ручном изменении значения данного параметра необходимо руководствоваться возможностями системы. Необходимо убедиться, что операционная система ни при каких обстоятельствах не сможет потребовать слишком большого объема памяти для SQL Server, что может снизить производительность SQL Server.

Параметр конфигурации max server memory используется для указания максимального объема памяти, выделяемого SQL Server при его загрузке и работе. Конкретное значение этому параметру конфигурации может быть присвоено, если известно, что SQL Server будет работать одновременно с другими приложениями, для которых необходимо гарантировать выделение достаточного объема памяти. Если параллельно работающие приложения (например почтовые и веб-серверы) требуют выделения памяти только по необходимости, то не нужно задавать значение параметра max server memory, так как SQL Server выделяет необходимый объем памяти автоматически. Однако некоторые приложения часто используют весь объем памяти, доступный в момент запуска, и не запрашивают ее дополнительно. При параллельной работе таких приложений с SQL Server необходимо установить для параметра конфигурации max server memory значение, гарантирующее, что память, необходимая этому приложению, не занята SQL Server.

Не следует задавать параметрам конфигурации min server memory и max server memory одинаковые значения, фиксируя таким образом объем памяти, выделяемый SQL Server. Динамическое выделение памяти обеспечивает более высокую производительность. Дополнительные сведения см. в разделе Параметры памяти сервера.

Параметр конфигурации максимальное число рабочих потоков используется для указания количества рабочих потоков, используемых для обслуживания пользователей, подключенных к SQL Server. Значение по умолчанию 255 может быть немного высоким для некоторых конфигураций, зависящих от количества одновременно подключенных пользователей. Так как рабочие потоки выделяются вне зависимости от их использования (количество рабочих потоков может превосходить количество параллельно подключенных пользователей), то некоторые ресурсы памяти, которые могут быть использованы для других операций (например буферным кэшем), остаются незадействованными. Обычно значение данного параметра устанавливается исходя из количества параллельных соединений, но не может превышать 32727. Параллельные соединения это не то же самое, что соединения входа. Пул рабочих потоков экземпляра SQL Server должен иметь объем, достаточный для обслуживания текущего количества параллельных соединений пользователей, одновременно выполняющих пакеты на экземпляре. Увеличение количества рабочих потоков, заданного по умолчанию, может привести к снижению производительности сервера. Дополнительные сведения см. в разделе Параметр max worker threads.

Параметр конфигурации index create memory управляет объемом памяти, используемой операциями сортировки при создании индексов. Создание индекса в производственной системе обычно проводится редко, и часто выполняется в качестве планового задания в момент минимальной загрузки сервера. Поэтому увеличение данного параметра может сильно повысить производительность операции создания индексов. Значение параметра min memory per query необходимо снижать, так как задание на создание индексов запускается даже в том случае, когда система не располагает требуемым объемом свободной памяти. Дополнительные сведения см. в разделе Параметр index create memory.

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

См. также

Задачи

Как установить минимальный объем памяти для запроса (среда SQL Server Management Studio)

Основные понятия

Мониторинг использования памяти
Параметры настройки min server memory и max server memory
Управление памятью для больших баз данных

Справка и поддержка

Получение помощи по SQL Server 2005