В SQL Server от компании Microsoft для управления ресурсами сервера используются параметры конфигурации, в данном материале мы поговорим о системной процедуре sp_configure, с помощью которой можно просматривать и изменять эти параметры.
Для начала давайте поговорим о том, для чего вообще нужны параметры конфигурации, и стоит ли их изменять.
- Параметры конфигурации Microsoft SQL Server
- Системная процедура sp_configure
- Примеры использования процедуры sp_configure
- Включаем отображение всех параметров конфигурации
- Запускаем процедуру на просмотр параметров
- Разрешаем использование нерегламентированные распределенные запросы
- Уменьшаем время ожидание подтверждения удаленного входа
Параметры конфигурации Microsoft SQL Server
Параметры конфигурации SQL сервера – это параметры, которые применяются ко всему экземпляру сервера. С помощью данных параметров можно оптимизировать ресурсы с целью увеличения производительности или расширить базовый функционал (включить дополнительную возможность).
Если параметры поддерживаются на нескольких уровнях, то параметры конфигурации на уровне экземпляра имеют меньший приоритет, чем параметры на уровне базы данных или те параметры, которые задаются с помощью инструкции SET.
Параметры конфигурации SQL Server настроены таким образом, что их изменять следует только в самых крайних случаях, причем это нужно делать осознано, т.е. понимать, на что это повлияет, поэтому рекомендуется, чтобы такие параметры изменяли опытные администраторы или разработчики.
Некоторые часто используемые параметры конфигурации доступны в графической среде SQL Server Management Studio, все параметры посмотреть или изменить можно с помощью системной процедуры sp_configure.
Популярные параметры конфигурации сервера:
- show advanced options – параметр используется для отображения всех параметров, которые возвращает системная процедура sp_configure. По умолчанию отображается только часть параметров;
- Agent XPs – параметр включает расширенные хранимые процедуры агента SQL Server;
- clr enabled – параметр включает возможность использования пользовательских сборок CLR;
- Database Mail XPs – параметр включает компонент Database Mail на SQL сервере;
- xp_cmdshell – данный параметр позволяет включить возможность использования расширенной системной процедуры xp_cmdshell. В целях безопасности по умолчанию она отключена;
- Ad Hoc Distributed Queries – разрешает использовать нерегламентированные распределенные запросы в инструкциях OPENROWSET и OPENDATASOURCE;
- query wait – с помощью данного параметра можно задать время в секундах, в течение которого запрос будет ожидать ресурсы;
- remote login timeout — с помощью этого параметра можно изменить время ожидания в секундах подтверждения удаленного входа, по истечении которого будет возвращаться сообщение об ошибке. Например, если сервер недоступен, можно сделать так, что ошибка будет возвращаться быстрей, чем поведение по умолчанию.
Подробней обо всех параметрах конфигурации Microsoft SQL Server можете почитать в официальной справке.
Системная процедура sp_configure
sp_configure – это системная процедура, предназначенная для отображения или изменения глобальных параметров конфигурации текущего SQL сервера. После того, как Вы изменили параметр конфигурации, необходимо выполнить инструкцию RECONFIGURE, для того чтобы изменения вступили в силу, иногда, при изменении некоторых параметров, требуется перезапуск всего экземпляра SQL Server.
Если Вы укажете конфигурационное значение, которое не соответствует спецификации, т.е., например, выходит за пределы допустимых значений, RECONFIGURE выдаст ошибку (например, ошибка «Нерегламентированное обновление в системных каталогах не поддерживается»). Однако инструкция RECONFIGURE WITH OVERRIDE отключает проверку конфигурационных значений, но, как Вы понимаете, ее нужно использовать с особой осторожностью, ведь указав значение, которое выходит за пределы допустимых, Вы намерено допускаете возможность возникновения ошибок.
У процедуры sp_configure есть два необязательных параметра, это:
- Первый — имя параметра конфигурации, если параметр отсутствует, то возвращается весь список параметров;
- Второй — новое значение параметра конфигурации.
Для того чтобы выполнить процедуру sp_configure без изменений параметров конфигурации, т.е. на просмотр параметров, особые права не нужны, но, для того чтобы изменить параметры конфигурации с помощью процедуры sp_configure, нужно разрешение ALTER SETTINGS, т.е., например, быть членом предопределенных ролей сервера sysadmin и serveradmin, у которых есть данное разрешение.
Примеры использования процедуры sp_configure
Все примеры я буду выполнять в Microsoft SQL Server 2016 Express.
Включаем отображение всех параметров конфигурации
EXEC sp_configure 'show advanced options', 1 RECONFIGURE
Запускаем процедуру на просмотр параметров
--Смотрим один конкретный параметр EXEC sp_configure 'show advanced options' --Смотрим все параметры EXEC sp_configure
Также посмотреть параметры конфигурации сервера можно с помощью системного представления sys.configurations, оно даже возвращает чуть больше информации, чем процедура sp_configure.
SELECT * FROM sys.configurations
Разрешаем использование нерегламентированные распределенные запросы
--Значение до изменения EXEC sp_configure 'Ad Hoc Distributed Queries' --Устанавливаем новое значение EXEC sp_configure 'Ad Hoc Distributed Queries', 1 --Переконфигурируем RECONFIGURE --Значение после изменения EXEC sp_configure 'Ad Hoc Distributed Queries'
Заметка! Что такое связанные серверы (Linked Server) в Microsoft SQL Server.
Уменьшаем время ожидание подтверждения удаленного входа
--Значение до изменения EXEC sp_configure 'remote login timeout' --Устанавливаем новое значение EXEC sp_configure 'remote login timeout', 5 --Переконфигурируем RECONFIGURE --Значение после изменения EXEC sp_configure 'remote login timeout'
Заметка! Если Вас интересует SQL и T-SQL, рекомендую посмотреть мои видеокурсы по T-SQL, с помощью которых Вы «с нуля» научитесь работать с SQL и программировать с использованием языка T-SQL в Microsoft SQL Server.
У меня все, надеюсь, материал был Вам полезен, удачи!