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


ALTER RESOURCE GOVERNOR (Transact-SQL)

Эта команда используется для выполнения следующих действий.

  • Применение изменений конфигурации, указанных при вызове инструкций CREATE|ALTER|DROP WORKLOAD GROUP или CREATE|ALTER|DROP RESOURCE POOL.

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

  • Настройка классификации для входящих запросов.

  • Сброс статистики группы рабочей нагрузки и пула ресурсов.

Значок ссылки на разделСоглашения о синтаксисе Transact-SQL

Синтаксис

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

Аргументы

Условие

Определение

DISABLE | RECONFIGURE

DISABLE отключает регулятор ресурсов. В результате отключения регулятора ресурсов происходит следующее.

  • Функция-классификатор не выполняется.

  • Новые соединения автоматически попадают в группу по умолчанию.

  • Инициированные системой запросы попадают во внутреннюю группу рабочей нагрузки.

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

  • Обычное наблюдение за системой не затрагивается.

  • Изменения конфигурации можно внести, но изменения не будут выполнены, если включен регулятор ресурсов.

  • При перезапуске SQL Server регулятор ресурсов не будет загружать конфигурацию; вместо этого будут настроены только внутренние группы и пулы, а также группы и пулы, заданные по умолчанию.

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

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

  • Ограничения ресурсов, заданные в конфигурации регулятора ресурсов, будут соблюдены и применены.

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

Параметр RECONFIGURE, использованный в ситуации, когда регулятор ресурсов выполняется, применяет любые изменения конфигурации, запрашиваемые при выполнении инструкций CREATE|ALTER|DROP WORKLOAD GROUP или CREATE|ALTER|DROP 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).

Замечания

ALTER RESOURCE GOVERNOR DISABLE, ALTER RESOURCE GOVERNOR RECONFIGURE и ALTER RESOURCE GOVERNOR RESET STATISTICS не могут использоваться в пользовательской транзакции.

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

Рекомендуется ознакомиться с состояниями регулятора ресурсов, прежде чем приступить к выполнению инструкций DLL. Дополнительные сведения см. в разделе Состояния регулятора ресурсов.

Разрешения

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

Примеры

А. Запуск регулятора ресурсов

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

ALTER RESOURCE GOVERNOR RECONFIGURE;

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

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

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

Г. Сброс статистики

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

ALTER RESOURCE GOVERNOR RESET STATISTICS;