Системная процедура sp_configure — установка параметров конфигурации в Microsoft SQL Server

В SQL Server от компании Microsoft для управления ресурсами сервера используются параметры конфигурации, в данном материале мы поговорим о системной процедуре 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

Скриншот 1

Также посмотреть параметры конфигурации сервера можно с помощью системного представления sys.configurations, оно даже возвращает чуть больше информации, чем процедура sp_configure.

    
   SELECT * FROM sys.configurations

Скриншот 2

Разрешаем использование нерегламентированные распределенные запросы

   
   --Значение до изменения
   EXEC sp_configure 'Ad Hoc Distributed Queries'
   --Устанавливаем новое значение
   EXEC sp_configure 'Ad Hoc Distributed Queries', 1
   --Переконфигурируем
   RECONFIGURE
   --Значение после изменения
   EXEC sp_configure 'Ad Hoc Distributed Queries'

Скриншот 3

Уменьшаем время ожидание подтверждения удаленного входа

   
   --Значение до изменения
   EXEC sp_configure 'remote login timeout'
   --Устанавливаем новое значение
   EXEC sp_configure 'remote login timeout', 5
   --Переконфигурируем
   RECONFIGURE
   --Значение после изменения
   EXEC sp_configure 'remote login timeout'

Скриншот 4

Заметка! Если Вас интересует язык T-SQL, то рекомендую почитать мою книгу «Путь программиста T-SQL», в ней я подробно, с большим количеством примеров, рассказываю практически про все возможности языка Transact-SQL.

У меня все, надеюсь, материал был Вам полезен, удачи!

Понравилась статья? Поделиться с друзьями:
Заметки IT специалиста
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:
Нажимая на кнопку «Отправить комментарий», я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.