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


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)