Поделиться через


ALTER RESOURCE GOVERNOR (Transact-SQL)

Область применения: SQL Server Управляемый экземпляр SQL Azure

Эта инструкция выполняет следующие действия регулятора ресурсов:

  • Включение или отключение регулятора ресурсов.
  • Примените изменения конфигурации, указанные при выполнении инструкций CREATE | ALTER | DROP WORKLOAD GROUP или CREATE | ALTER | DROP RESOURCE POOL или CREATE | ALTER | DROP EXTERNAL RESOURCE POOL.
  • Настройте классификацию для входящих сеансов.
  • Сброс статистики группы рабочей нагрузки и пула ресурсов.
  • Задайте максимальные операции ввода-вывода в очереди для каждого тома диска.

Соглашения о синтаксисе Transact-SQL

Синтаксис

ALTER RESOURCE GOVERNOR
    { RECONFIGURE
          [ WITH
                ( [ CLASSIFIER_FUNCTION = { schema_name.function_name | NULL } ]
                  [ [ , ] MAX_OUTSTANDING_IO_PER_VOLUME = value ]
                )
          ]
      | DISABLE
      | RESET STATISTICS
    }
[ ; ]

Аргументы

RECONFIGURE

Если регулятор ресурсов не включен, RECONFIGURE включает регулятор ресурсов. Включение регулятора ресурсов имеет следующие результаты:

  • Функция классификатора, если она есть, выполняется для новых сеансов, назначая их группам рабочих нагрузок.
  • Резервирования ресурсов и ограничения, указанные в конфигурации регулятора ресурсов, учитываются и применяются.
  • Запросы, которые существовали перед включением регулятора ресурсов, могут повлиять на любые изменения конфигурации, внесенные при включении регулятора ресурсов.

Если регулятор ресурсов включен, RECONFIGURE применяет любые изменения конфигурации, внесенные в инструкции CREATE | ALTER | DROP WORKLOAD GROUP или CREATE | ALTER | DROP RESOURCE POOL или CREATE | ALTER | DROP EXTERNAL RESOURCE POOL после предыдущего использования RECONFIGURE или после последнего перезапуска ядра СУБД.

Внимание

чтобы изменения конфигурации регулятора ресурсов вступили в силу, необходимо выполнить ALTER RESOURCE GOVERNOR RECONFIGURE.

CLASSIFIER_FUNCTION = { schema_name.function_name | NULL }

Регистрирует функцию классификации, указанную schema_name.function_name. Эта функция классифицирует каждый новый сеанс и назначает сеанс группе рабочей нагрузки. При использовании NULL новые сеансы автоматически назначаются группе default рабочей нагрузки.

MAX_OUTSTANDING_IO_PER_VOLUME = value

Область применения: SQL Server 2014 (12.x) и более поздних версий.

Устанавливает максимальное число поставленных в очередь операций ввода-вывода для тома диска. Эти операции ввода-вывода могут быть операциями чтения или записи любого размера. Максимальное значение для MAX_OUTSTANDING_IO_PER_VOLUME равно 100. Значение не является процентом. Этот параметр предназначен для подстройки управление ресурсами ввода-вывода к характеристикам ввода-вывода дискового тома. Он предоставляет проверку безопасности на уровне системы, которая позволяет ядро СУБД соответствовать параметру MIN_IOPS_PER_VOLUME, указанному для пулов ресурсов, даже если другие пулы имеют параметр MAX_IOPS_PER_VOLUME, равный неограниченному. Дополнительные сведения см. в разделе CREATE RESOURCE POOL.

DISABLE

Отключает регулятор ресурсов. Отключение регулятора ресурсов имеет следующие результаты:

  • Функция классификатора не выполняется.
  • Все новые сеансы пользователей автоматически классифицируются в группу рабочих нагрузок default.
  • Системные сеансы классифицируются в группу рабочих нагрузок internal.
  • Все существующие параметры групп рабочей нагрузки и пулов ресурсов сбрасываются в значения по умолчанию. События не запускаются при достижении ограничений.
  • Обычный мониторинг системы не влияет.
  • Изменения конфигурации регулятора ресурсов можно вносить, но изменения не вступают в силу до включения регулятора ресурсов.
  • После перезапуска ядра СУБД регулятор ресурсов не загружает свою конфигурацию, но вместо этого использует только default и internal группы рабочих нагрузок и пулы ресурсов.

RESET STATISTICS

Сбрасывает статистику по всем группам рабочей нагрузки и пулам ресурсов, предоставляемым в sys.dm_resource_governor_workload_groups и sys.dm_resource_governor_resource_pools.

Замечания

ALTER RESOURCE GOVERNOR нельзя использовать внутри транзакции пользователя.

Параметр RECONFIGURE является частью синтаксиса регулятора ресурсов. Его не следует путать с RECONFIGURE, которая является отдельной инструкцией DDL.

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

Разрешения

Требуется разрешение CONTROL SERVER.

Примеры

Включение регулятора ресурсов

При установке SQL Server регулятор ресурсов отключен. В следующем примере включается регулятор ресурсов. После выполнения инструкции регулятор ресурсов включен и использует встроенные группы рабочих нагрузок и пулы ресурсов.

ALTER RESOURCE GOVERNOR RECONFIGURE;

Назначение новых сеансов группе по умолчанию

В следующем примере назначаются все новые сеансы группе рабочей нагрузки default путем удаления любой существующей функции классификатора из конфигурации регулятора ресурсов. Если функция не назначена в качестве функции классификатора, все новые пользовательские сеансы назначаются группе рабочих нагрузок default. Это изменение применимо только к новым сеансам. Существующие сеансы не затрагиваются.

ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = NULL);
ALTER RESOURCE GOVERNOR RECONFIGURE;

Создание и регистрация функции классификатора

В следующем примере создается функция классификатора с именем dbo.rg_classifier в базе данных master. Эта функция классифицирует каждый новый сеанс на основе имени пользователя или имени приложения и назначает запросы сеанса и запросы в группу рабочей нагрузки. Сеансы, которые не сопоставляются с именами определенного пользователя или приложения, назначаются группе рабочей нагрузки по умолчанию. После этого регистрируется функция-классификатор и применяются изменения конфигурации.

USE master;
GO

CREATE FUNCTION dbo.rg_classifier()
RETURNS sysname
WITH SCHEMABINDING
AS
BEGIN

-- Declare the variable for the function return value.
DECLARE @grp_name AS sysname;

-- If the login name is 'sa', classify the session into the groupAdmin workload group
IF (SUSER_NAME() = 'sa')
  SET @grp_name = 'groupAdmin';

-- Classify SSMS sessions into the groupAdhoc workload group
ELSE IF UPPER(APP_NAME()) LIKE '%MANAGEMENT STUDIO%'
  SET @grp_name = 'groupAdhoc';

-- Classify SSRS sessions into groupReports workload group
ELSE IF UPPER(APP_NAME()) LIKE '%REPORT SERVER%'
  SET @grp_name = 'groupReports';

-- Otherwise, classify the session into the default workload group
ELSE
  SET @grp_name = 'default';

-- Return the name of the workload group
RETURN @grp_name;

END;
GO

-- Register the classifier function and update resource governor configuration
ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = dbo.rg_classifier);
ALTER RESOURCE GOVERNOR RECONFIGURE;

Сброс статистики регулятора ресурсов

В следующем примере сбрасывается статистика всех групп рабочей нагрузки и пулов ресурсов.

ALTER RESOURCE GOVERNOR RESET STATISTICS;

Настройка параметра MAX_OUTSTANDING_IO_PER_VOLUME

В следующем примере для параметра MAX_OUTSTANDING_IO_PER_VOLUME задано значение 20 IOS.

ALTER RESOURCE GOVERNOR WITH (MAX_OUTSTANDING_IO_PER_VOLUME = 20);