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

Компонент управления памятью в Microsoft SQL Server снимает необходимость ручной настройки памяти, доступной в 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. Значение параметра max worker threads по умолчанию (0) дает возможность SQL Server автоматически определять число рабочих потоков при запуске. Это значение оптимально для большинства систем, однако, в зависимости от конфигурации системы, задание конкретного значения параметра max worker threads может иногда повысить производительность. Дополнительные сведения см. в разделе Параметр max worker threads.

ПримечаниеПримечание

Значение параметра max worker threads в SQL Server 2000 было 255. При обновлении экземпляра компонента SQL Server 2000 Database Engine значение параметра конфигурации max worker threads сохранится. Перед обновлением экземпляра рекомендуется установить для параметра max worker threads значение 0, чтобы компонент Database Engine рассчитал оптимальное количество потоков.

Параметр конфигурации 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.