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);
Связанное содержимое
- регулятора ресурсов
- примеры конфигурации регулятора ресурсов и рекомендации
- CREATE RESOURCE POOL
- ALTER RESOURCE POOL
- DROP RESOURCE POOL
- СОЗДАНИЕ ВНЕШНЕГО ПУЛА РЕСУРСОВ
- УДАЛИТЬ ВНЕШНИЙ ПУЛ РЕСУРСОВ
- ALTER EXTERNAL RESOURCE POOL
- CREATE WORKLOAD GROUP
- ALTER WORKLOAD GROUP
- ГРУППЫ РАБОЧЕЙ НАГРУЗКИ
DROP - sys.dm_resource_governor_workload_groups
- sys.dm_resource_governor_resource_pools