Инструкция 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]
Аргументы
{ 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)