Инструкция ALTER RESOURCE POOL (Transact-SQL)

Применимо к:SQL Server Управляемый экземпляр SQL Azure

Изменяет существующую конфигурацию пула ресурсов регулятора ресурсов в SQL Server.

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

Синтаксис

ALTER RESOURCE POOL { pool_name | "default" }  
[WITH  
    ( [ MIN_CPU_PERCENT = value ]  
    [ [ , ] MAX_CPU_PERCENT = value ]   
    [ [ , ] CAP_CPU_PERCENT = value ]   
    [ [ , ] AFFINITY {
                        SCHEDULER = AUTO 
                      | ( <scheduler_range_spec> ) 
                      | NUMANODE = ( <NUMA_node_range_spec> )
                      }]   
    [ [ , ] MIN_MEMORY_PERCENT = value ]  
    [ [ , ] MAX_MEMORY_PERCENT = value ]   
    [ [ , ] MIN_IOPS_PER_VOLUME = value ]  
    [ [ , ] MAX_IOPS_PER_VOLUME = value ]  
)]   
[;]  
  
<scheduler_range_spec> ::=  
{SCHED_ID | SCHED_ID TO SCHED_ID}[,...n]  
  
<NUMA_node_range_spec> ::=  
{NUMA_node_ID | NUMA_node_ID TO NUMA_node_ID}[,...n]  

Примечание.

Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.

Аргументы

{ pool_name | "default" }
Имя существующего определяемого пользователем пула ресурсов или пула ресурсов по умолчанию, создаваемого при установке SQL Server.

Если слово "default" используется с инструкцией ALTER RESOURCE POOL, оно должно быть заключено в кавычки ("") или квадратные скобки ([]) во избежание конфликта с системным зарезервированным словом DEFAULT. Дополнительные сведения см. в разделе Идентификаторы баз данных.

Примечание.

В стандартных группах рабочей нагрузки и пулах ресурсов используются имена со строчными буквами, такие как «default». Это необходимо учитывать при работе с серверами, где параметры сортировки учитывают регистр символов. Серверы, параметры сортировки которых не учитывают регистр (например, SQL_Latin1_General_CP1_CI_AS), будут рассматривать строки «default» и «Default» как одинаковые.

MIN_CPU_PERCENT =value
Указывает гарантированную среднюю пропускную способность ЦП для всех запросов в пуле ресурсов при возникновении состязания использования ЦП. value имеет тип integer и значение по умолчанию 0. Диапазон допустимых значений для value — от 0 до 100.

MAX_CPU_PERCENT =value
Указывает максимальную среднюю пропускную способность ЦП для всех запросов в пуле ресурсов при возникновении состязания за ресурсы ЦП. value имеет тип integer и значение по умолчанию 100. Диапазон допустимых значений для value — от 1 до 100.

CAP_CPU_PERCENT = значение
Область применения: SQL Server 2012 (11.x) и более поздних версий.

Указывает целевую максимальную емкость ЦП для запросов в пуле ресурсов. value имеет тип integer и значение по умолчанию 100. Диапазон допустимых значений для value — от 1 до 100.

Примечание.

Из-за статистической природы системы управления ЦП могут появиться случайные пики, превышающие значение, указанное в CAP_CPU_PERCENT.

AFFINITY {SCHEDULER = AUTO | (Scheduler_range_spec) | NUMANODE = (NUMA_node_range_spec)}
Область применения: SQL Server 2012 (11.x) и более поздних версий.

Подключает пул ресурсов к заданным планировщикам. Значение по умолчанию — AUTO.

AFFINITY SCHEDULER = (указатель_диапазона_планировщика) сопоставляет пул ресурсов с расписаниями SQL Server, которые имеют указанные идентификаторы. Эти идентификаторы сопоставляются со значениями в столбце scheduler_id представления sys.dm_os_schedulers (Transact-SQL).

При использовании AFFINITY NAMANODE = (NUMA_node_range_spec) пул ресурсов приводится в соответствие с планировщиками SQL Server, которые сопоставлены с физическими процессорами, соответствующими данному узлу или диапазону узлов NUMA. Вы можете использовать следующий запрос Transact-SQL для обнаружения сопоставления между конфигурацией физического узла NUMA и идентификаторами планировщиков SQL Server.

SELECT osn.memory_node_id AS [numa_node_id], sc.cpu_id, sc.scheduler_id  
FROM sys.dm_os_nodes AS osn  
INNER JOIN sys.dm_os_schedulers AS sc 
   ON osn.node_id = sc.parent_node_id 
      AND sc.scheduler_id < 1048576;  

MIN_MEMORY_PERCENT = значение
Указывает минимальный объем памяти, резервируемый для данного пула ресурсов, который не подлежит использованию совместно с другими пулами ресурсов. value имеет тип integer и значение по умолчанию 0. Диапазон допустимых значений для value — от 0 до 100.

MAX_MEMORY_PERCENT = значение
Указывает общий объем памяти сервера, который может использоваться для запросов в данном пуле ресурсов. value имеет тип integer и значение по умолчанию 100. Диапазон допустимых значений для value — от 1 до 100.

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

Указывает минимальный объем операций ввода-вывода в секунду (IOPS) на дисковый том, который следует резервировать для пула ресурсов. Диапазон допустимых значений для value — от 0 до 2^31-1 (2 147 483 647). Укажите значение 0, чтобы не указывать минимальный порог для пула.

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

Указывает максимальный объем операций ввода-вывода в секунду (IOPS) на дисковый том, при котором поддерживается пул ресурсов. Диапазон допустимых значений для value — от 0 до 2^31-1 (2 147 483 647). Укажите значение 0, чтобы задать неограниченный порог для пула. По умолчанию установлено значение 0.

Если значение параметра MAX_IOPS_PER_VOLUME для пула установлено в 0, пул не регулируется вообще и может занять все IOPS в системе, даже если для остальных пулов задан параметр MIN_IOPS_PER_VOLUME. На этот случай рекомендуется устанавливать достаточно высокое значение MAX_IOPS_PER_VOLUME для этого пула (например, максимальное значение 2^31-1), если требуется, чтобы пул регулировался на ввод-вывод.

Замечания

Значения MAX_CPU_PERCENT и MAX_MEMORY_PERCENT должны быть больше либо равны значениям MIN_CPU_PERCENT и MIN_MEMORY_PERCENT соответственно.

MAX_CPU_PERCENT может использовать емкость ЦП, превышающую значение MAX_CPU_PERCENT, если она доступна. Хотя периодически могут возникать пиковые значения, превышающие CAP_CPU_PERCENT, рабочие нагрузки не должны превышать значение CAP_CPU_PERCENT в течение продолжительного периода, даже если емкость ЦП доступна.

Общий процент ЦП для каждого соответствующего компонента (планировщики или узлы NUMA) не должен превышать 100 %.

При выполнении инструкций DDL рекомендуется иметь представление о состояниях регулятора ресурсов. Дополнительные сведения см. в разделе Resource Governor (Регулятор ресурсов).

При изменении параметра, влияющего на план, новый параметр вступит в силу в ранее кэшированных планах только после выполнения инструкции DBCC FREEPROCCACHE (pool_name), где pool_name — это имя пула ресурсов Resource Governor.

  • Если вы указываете для AFFINITY одного планировщика вместо нескольких, необязательно выполнять инструкцию DBCC FREEPROCCACHE, поскольку параллельные планы могут выполняться в последовательном режиме. Однако это будет не так эффективно, как компилирование последовательного плана.

  • Если вы указываете для AFFINITY нескольких планировщиков вместо одного, необязательно выполнять инструкцию DBCC FREEPROCCACHE. Однако последовательные планы не могут выполняться параллельно, поэтому очистка соответствующего кэша позволит новым планам потенциально компилироваться с помощью параллелизма.

Внимание

Удаление кэшированных планов из пула ресурсов, который связан с несколькими группами рабочей нагрузки, повлияет на все группы рабочей нагрузки в определяемом пользователем пуле ресурсов pool_name.

Разрешения

Необходимо разрешение CONTROL SERVER.

Примеры

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

ALTER RESOURCE POOL "default"  
WITH  
     ( MAX_CPU_PERCENT = 25);  
GO  
ALTER RESOURCE GOVERNOR RECONFIGURE;  
GO  

В следующем примере CAP_CPU_PERCENT задает жесткое ограничение 80 %, а AFFINITY SCHEDULER получает отдельное значение 8 и диапазон от 12 до 16.

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

ALTER RESOURCE POOL Pool25  
WITH(   
     MIN_CPU_PERCENT = 5,  
     MAX_CPU_PERCENT = 10,       
     CAP_CPU_PERCENT = 80,  
     AFFINITY SCHEDULER = (8, 12 TO 16),   
     MIN_MEMORY_PERCENT = 5,  
     MAX_MEMORY_PERCENT = 15  
);  
  
GO  
ALTER RESOURCE GOVERNOR RECONFIGURE;  
GO  

См. также

регулятор ресурсов
CREATE RESOURCE POOL (Transact-SQL)
DROP RESOURCE POOL (Transact-SQL)
CREATE WORKLOAD GROUP (Transact-SQL)
ALTER WORKLOAD GROUP (Transact-SQL)
DROP WORKLOAD GROUP (Transact-SQL)
ALTER RESOURCE GOVERNOR (Transact-SQL)