ALTER RESOURCE GOVERNOR (Transact-SQL)
Область применения: SQL Server Управляемый экземпляр SQL Azure
Эта инструкция используется для выполнения следующих действий регулятора ресурсов в SQL Server:
Применение изменений конфигурации, указанных при вызове инструкций CREATE|ALTER|DROP WORKLOAD GROUP, или CREATE|ALTER|DROP RESOURCE POOL, или CREATE|ALTER|DROP EXTERNAL RESOURCE POOL.
Включение или отключение регулятора ресурсов.
Настройка классификации для входящих запросов.
Сброс статистики группы рабочей нагрузки и пула ресурсов.
Устанавливает максимальное число операций ввода-вывода для тома диска.
Соглашения о синтаксисе Transact-SQL
Синтаксис
ALTER RESOURCE GOVERNOR
{ DISABLE | RECONFIGURE }
| WITH ( CLASSIFIER_FUNCTION = { schema_name.function_name | NULL } )
| RESET STATISTICS
| WITH ( MAX_OUTSTANDING_IO_PER_VOLUME = value )
[ ; ]
Аргументы
DISABLE
Отключение регулятора ресурсов. В результате отключения регулятора ресурсов происходит следующее.
Функция-классификатор не выполняется.
Новые соединения автоматически попадают в группу по умолчанию.
Инициированные системой запросы попадают во внутреннюю группу рабочей нагрузки.
Все существующие параметры групп рабочей нагрузки и пулов ресурсов сбрасываются в значения по умолчанию. В этом случае при достижении ограничений не возникает никаких событий.
Обычное наблюдение за системой не затрагивается.
Изменения конфигурации можно внести, но изменения не будут выполнены, если включен регулятор ресурсов.
После перезапуска SQL Server регулятор ресурсов не загружает свою конфигурацию, но вместо этого будет иметь только внутренние группы и пулы по умолчанию.
RECONFIGURE
Если регулятор ресурсов не включен, то RECONFIGURE включит регулятор ресурсов. В результате включения регулятора ресурсов произойдет следующее.
Будет выполнена функция-классификатор для новых соединений, что позволит связать их рабочую нагрузку с определенными группами рабочей нагрузки.
Ограничения ресурсов, заданные в конфигурации регулятора ресурсов, будут соблюдены и применены.
Любые изменения конфигурации, внесенные в то время, пока регулятор ресурсов был отключен, затрагивают запросы, которые существовали до включения регулятора ресурсов.
Параметр RECONFIGURE, использованный в ситуации, когда Resource Governor выполняется, применяет любые изменения конфигурации, запрашиваемые при выполнении инструкций CREATE|ALTER|DROP WORKLOAD GROUP, или CREATE|ALTER|DROP RESOURCE POOL, или CREATE|ALTER|DROP EXTERNAL RESOURCE POOL.
Внимание
Чтобы любые изменения конфигурации вступили в силу, необходимо вызвать инструкцию ALTER RESOURCE GOVERNOR RECONFIGURE.
CLASSIFIER_FUNCTION = { schema_name.function_name | NULL }
Регистрирует функцию классификации, указанную schema_name.function_name. Эта функция классифицирует каждый новый сеанс и назначает запросы сеанса в группу рабочей нагрузки. При использовании значения NULL новые сеансы автоматически назначаются в группу рабочей нагрузки по умолчанию.
RESET STATISTICS
Сбрасывает статистику всех групп рабочей нагрузки и пулов ресурсов. Дополнительные сведения см. в разделах sys.dm_resource_governor_workload_groups (Transact-SQL) и sys.dm_resource_governor_resource_pools (Transact-SQL).
MAX_OUTSTANDING_IO_PER_VOLUME = value
Область применения: SQL Server 2014 (12.x) и более поздних версий.
Устанавливает максимальное число поставленных в очередь операций ввода-вывода для тома диска. Эти операции ввода-вывода могут быть операциями чтения или записи любого размера. Максимальное значение для MAX_OUTSTANDING_IO_PER_VOLUME равно 100. Это значение не в процентах. Этот параметр предназначен для подстройки управление ресурсами ввода-вывода к характеристикам ввода-вывода дискового тома. Данный параметр предоставляет проверку безопасности на уровне системы, позволяющую SQL Server соответствовать минимальному числу операций ввода-вывода в секунда для пулов ресурсов, даже если в других пулах значение MAX_IOPS_PER_VOLUME неограниченно. Дополнительные сведения о параметре MAX_IOPS_PER_VOLUME см. в разделе CREATE RESOURCE POOL.
Замечания
ALTER RESOURCE GOVERNOR DISABLE, ALTER RESOURCE GOVERNOR RECONFIGURE и ALTER RESOURCE GOVERNOR RESET STATISTICS не могут использоваться в пользовательской транзакции.
Параметр RECONFIGURE входит в состав синтаксиса Resource Governor, и его не следует путать с ключевым словом RECONFIGURE, которое представляет собой отдельную инструкцию DDL.
Рекомендуется ознакомиться с состояниями регулятора ресурсов, прежде чем приступить к выполнению инструкций DLL. Дополнительные сведения см. в разделе Resource Governor (Регулятор ресурсов).
Разрешения
Необходимо разрешение CONTROL SERVER.
Примеры
А. Запуск регулятора ресурсов
При первом установке регулятора ресурсов SQL Server отключен. В следующем примере выполняется запуск регулятора ресурсов. После выполнения предыдущей инструкции регулятор ресурсов запускается и может использовать стандартные группы рабочей нагрузки и пулы ресурсов.
ALTER RESOURCE GOVERNOR RECONFIGURE;
B. Назначение новых сеансов группе по умолчанию
В следующем примере назначаются все новые сеансы группе рабочей нагрузки по умолчанию путем удаления всех существующих функций-классификаторов из конфигурации регулятора ресурсов. Если не назначены функции-классификаторы, все новые сеансы назначаются группе рабочей нагрузки по умолчанию. Это изменение применимо только к новым сеансам. На существующие сеансы оно не влияет.
ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION = NULL);
GO
ALTER RESOURCE GOVERNOR RECONFIGURE;
В. Создание и регистрация функции-классификатора
В следующем примере создается функция-классификатор с именем dbo.rgclassifier_v1
. Эта функция классифицирует каждый новый сеанс на основе имени пользователя или имени приложения и назначает запросы сеанса и запросы в группу рабочей нагрузки. Сеансы, которые не сопоставляются с именами определенного пользователя или приложения, назначаются группе рабочей нагрузки по умолчанию. После этого регистрируется функция-классификатор и применяются изменения конфигурации.
-- Store the classifier function in the master database.
USE master;
GO
SET ANSI_NULLS ON;
GO
SET QUOTED_IDENTIFIER ON;
GO
CREATE FUNCTION dbo.rgclassifier_v1() RETURNS sysname
WITH SCHEMABINDING
AS
BEGIN
-- Declare the variable to hold the value returned in sysname.
DECLARE @grp_name AS sysname
-- If the user login is 'sa', map the connection to the groupAdmin
-- workload group.
IF (SUSER_NAME() = 'sa')
SET @grp_name = 'groupAdmin'
-- Use application information to map the connection to the groupAdhoc
-- workload group.
ELSE IF (APP_NAME() LIKE '%MANAGEMENT STUDIO%')
OR (APP_NAME() LIKE '%QUERY ANALYZER%')
SET @grp_name = 'groupAdhoc'
-- If the application is for reporting, map the connection to
-- the groupReports workload group.
ELSE IF (APP_NAME() LIKE '%REPORT SERVER%')
SET @grp_name = 'groupReports'
-- If the connection does not map to any of the previous groups,
-- put the connection into the default workload group.
ELSE
SET @grp_name = 'default'
RETURN @grp_name
END;
GO
-- Register the classifier user-defined function and update the
-- the in-memory configuration.
ALTER RESOURCE GOVERNOR WITH (CLASSIFIER_FUNCTION=dbo.rgclassifier_v1);
GO
ALTER RESOURCE GOVERNOR RECONFIGURE;
GO
D. Сброс статистики
В следующем примере сбрасывается статистика всех групп рабочей нагрузки и пулов ресурсов.
ALTER RESOURCE GOVERNOR RESET STATISTICS;
Е. Установка параметра MAX_OUTSTANDING_IO_PER_VOLUME
В следующем примере для параметра MAX_OUTSTANDING_IO_PER_VOLUME задается значение 20.
ALTER RESOURCE GOVERNOR
WITH (MAX_OUTSTANDING_IO_PER_VOLUME = 20);
См. также
CREATE RESOURCE POOL (Transact-SQL)
ALTER RESOURCE POOL (Transact-SQL)
DROP RESOURCE POOL (Transact-SQL)
CREATE EXTERNAL RESOURCE POOL (Transact-SQL)
DROP EXTERNAL RESOURCE POOL (Transact-SQL)
ALTER EXTERNAL RESOURCE POOL (Transact-SQL)
CREATE WORKLOAD GROUP (Transact-SQL)
ALTER WORKLOAD GROUP (Transact-SQL)
DROP WORKLOAD GROUP (Transact-SQL)
регулятор ресурсов
sys.dm_resource_governor_workload_groups (Transact-SQL)
sys.dm_resource_governor_resource_pools (Transact-SQL)