Настройка параметра конфигурации сервера locks

В этом разделе описывается настройка параметра конфигурации сервера locks в SQL Server 2012 с помощью среды Среда SQL Server Management Studio или Transact-SQL. Параметр locks устанавливает максимальное число доступных блокировок, ограничивая таким образом объем памяти, используемый для них в компоненте Компонент SQL Server Database Engine. Значение 0 (по умолчанию) позволяет компоненту Компонент Database Engine динамически выделять и освобождать структуры блокировок в зависимости от изменяющихся системных требований.

Важное примечаниеВажно!

В будущей версии Microsoft SQL Server этот компонент будет удален. Не используйте его при работе над новыми приложениями и как можно быстрее измените приложения, в которых он в настоящее время используется.

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

  • Перед началом работы выполните следующие действия.

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

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

  • Задание параметра locks с помощью различных средств.

    Среда SQL Server Management Studio

    Transact-SQL

  • Дальнейшие действия.  После задания параметра locks

Перед началом работы

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

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

  • Когда сервер запускается с параметром locks, установленным в значение 0, диспетчер блокировок запрашивает у компонента Компонент Database Engine объем памяти, достаточный для начального пула в 2500 структур блокировки. Если пул блокировки будет исчерпан, для пула будет запрошена дополнительная память.

    Вообще, если требуется больше памяти, чем доступно для пула блокировки в пуле памяти компонента Компонент Database Engine, и больше компьютерной памяти доступно (порог максимальная память сервера не был достигнут), компонент Компонент Database Engine динамически распределяет память, чтобы удовлетворить потребности запроса блокировок. Однако, если распределение этой памяти вызовет подкачку страниц на уровне операционной системы (например, если другое приложение выполняется на том же самом компьютере как экземпляр SQL Server и использует эту память), большего объема пространства для блокировки не будет выделено. Динамический пул блокировки не получит больше чем 60 процентов памяти, выделенной для компонента Компонент Database Engine. После того как пул блокировки достигнет 60 процентов памяти, запрошенной экземпляром компонента Компонент Database Engine, или выяснится, что на компьютере нет больше доступной памяти, последующие запросы блокировок будут формировать ошибку.

    Разрешение SQL Server использовать блокировки динамически является рекомендуемой конфигурацией. Однако можно установить параметр locks и отключить динамическое распределение ресурсов блокировок SQL Server. Когда параметр locks имеет значение, отличное от 0, компонент Компонент Database Engine не может распределить больше блокировок, чем указано в этом параметре. Увеличьте это значение, если SQL Server отображает сообщение о том, что превышено количество доступных блокировок. Поскольку каждая блокировка занимает память (96 байт на блокировку), увеличение этого значения может потребовать увеличения объема памяти, выделенной для сервера.

  • Параметр locks также оказывает влияние при укрупнении блокировки. Когда параметр locks установлен в 0, укрупнение блокировки происходит тогда, когда память, используемая текущими структурами блокировки, достигает 40 процентов от пула памяти компонента Компонент Database Engine. Если параметр locks установлен не в значение 0, укрупнение блокировки происходит, когда количество блокировок достигает 40 процентов от значения, указанного для параметра locks.

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

Разрешения

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

Значок стрелки, используемый со ссылкой «В начало»[В начало]

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

Задание параметра locks

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

  2. Щелкните узел Дополнительно.

  3. В разделе Параллелизм введите нужное значение параметра locks.

    Используйте параметр locks для указания максимального числа доступных блокировок и, соответственно, для ограничения объема памяти, которую им выделяет SQL Server.

Значок стрелки, используемый со ссылкой «В начало»[В начало]

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

Задание параметра locks

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

  2. На стандартной панели выберите пункт Создать запрос.

  3. Скопируйте следующий пример в окно запроса и нажмите кнопку Выполнить. В этом примере описывается использование процедуры sp_configure для задания параметру locks значения, позволяющего установить число блокировок, доступных всем пользователям, равным 20000.

Use AdventureWorks2012 ;
GO
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'locks', 20000;
GO
RECONFIGURE;
GO

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

Значок стрелки, используемый со ссылкой «В начало»[В начало]

Дальнейшие действия. После задания параметра locks

Чтобы изменения вступили в силу, необходимо перезапустить сервер.

Значок стрелки, используемый со ссылкой «В начало»[В начало]

См. также

Справочник

RECONFIGURE (Transact-SQL)

sp_configure (Transact-SQL)

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

Параметры конфигурации сервера