Инструкция ALTER RESOURCE POOL (Transact-SQL)
Область применения: SQL Server Управляемый экземпляр SQL Azure
Изменяет существующую конфигурацию регулятора ресурсов пула ресурсов для экземпляра ядра СУБД.
Примечание.
Для Управляемого экземпляра SQL Azure необходимо быть в контексте базы данных master
для изменения конфигурации регулятора ресурсов.
Соглашения о синтаксисе 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
.
default
должны находиться в скобках ([]
) или кавычках (""
) при использовании с ALTER RESOURCE POOL
, чтобы избежать конфликта с DEFAULT
, который является системным зарезервированным словом. Дополнительные сведения см. в разделе Идентификаторы базы данных.
Встроенные пулы ресурсов и группы рабочих нагрузок используют все строчные имена, например default
. Используйте нижний регистр default
на серверах, использующих параметры сортировки с учетом регистра. Серверы с нечувствительными параметрами сортировки регистра обрабатывают default
, Default
и DEFAULT
с тем же значением.
MIN_CPU_PERCENT = значение
Указывает гарантированную среднюю пропускную способность ЦП для всех запросов в пуле ресурсов при возникновении состязания использования ЦП. value имеет тип integer и значение по умолчанию 0. Диапазон допустимых значений для value — от 0 до 100.
MAX_CPU_PERCENT = значение
Указывает максимальную среднюю пропускную способность ЦП, которую получают все запросы в пуле ресурсов при возникновении спорных данных ЦП. 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
.
Указание <scheduler_range_spec>
для AFFINITY SCHEDULER
сходства пула ресурсов с планировщиками ядра СУБД, определенными указанными идентификаторами. Эти идентификаторы сопоставляются со значениями в столбце scheduler_id
в sys.dm_os_schedulers.
Указание <NUMA_node_range_spec>
для AFFINITY NUMANODE
сопоставляет пул ресурсов с планировщиками ядра СУБД, которые сопоставляются с логическими ЦП, соответствующими заданному узлу NUMA или диапазону узлов. Следующий Transact-SQL запрос можно использовать для обнаружения сопоставления между физической конфигурацией NUMA и идентификаторами планировщика ядра СУБД.
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. Допустимый диапазон для значения составляет от 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, чтобы указать не минимальное значение для пула. По умолчанию установлено значение 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, пул не управляется операцией ввода-вывода вообще и может принимать все операции ввода-вывода в систему, даже если другие пулы имеют MIN_IOPS_PER_VOLUME
набор. В этом случае рекомендуется задать для этого пула значение MAX_IOPS_PER_VOLUME
большое число (например, максимальное значение 2^31-1), чтобы сделать этот пул управляемым операцией ввода-вывода и учитывать резервирования операций ввода-вывода в секунду, которые могут существовать для других пулов.
Замечания
Сумма MIN_CPU_PERCENT
или MIN_MEMORY_PERCENT
для всех пулов ресурсов не может превышать 100 процентов.
MIN_IOPS_PER_VOLUME
и MAX_IOPS_PER_VOLUME
укажите минимальные и максимальные IOS в секунду. IOs может быть либо чтением, либо записью, и может иметь любой размер. Поэтому с одинаковыми ограничениями операций ввода-вывода в секунду минимальная и максимальная пропускная способность ввода-вывода может отличаться в зависимости от размера операций ввода-вывода в рабочей нагрузке.
Значения MAX_CPU_PERCENT
и MAX_MEMORY_PERCENT
должны быть больше или равно значениям MIN_CPU_PERCENT
и MIN_MEMORY_PERCENT
соответственно.
CAP_CPU_PERCENT
отличается от MAX_CPU_PERCENT
в том, что рабочие нагрузки, связанные с пулом, могут использовать емкость ЦП выше значения MAX_CPU_PERCENT
, если она доступна, но не выше значения CAP_CPU_PERCENT
. Хотя в течение длительного периода времени рабочие нагрузки не могут превышать CAP_CPU_PERCENT
более коротких пиков выше CAP_CPU_PERCENT
, даже если дополнительная емкость ЦП доступна.
Общий процент ЦП для каждого сходного компонента (планировщиков) или узлов NUMA не может превышать 100 процентов.
Дополнительные сведения см. в
Кэшированные планы
При изменении плана, влияющего на параметр, новый параметр вступает в силу ранее кэшированных планов только после выполнения DBCC FREEPROCCACHE (<pool_name>)
, где <pool_name>
— это имя пула ресурсов регулятора ресурсов.
- Если вы изменяете
AFFINITY
с нескольких планировщиков на один планировщик, выполнениеDBCC FREEPROCCACHE
не требуется, так как параллельные планы могут выполняться в последовательном режиме. Однако такой план может быть менее эффективным, чем план, скомпилированный как последовательный план. - Если вы изменяете
AFFINITY
с одного планировщика на несколько планировщиков, выполнениеDBCC FREEPROCCACHE
не требуется. Однако последовательные планы не могут выполняться параллельно, поэтому очистка соответствующего кэша позволяет скомпилировать новые планы потенциально с помощью параллелизма.
Предупреждение
Очистка кэшированных планов из пула ресурсов, связанного с несколькими группами рабочих нагрузок, влияет на все группы рабочих нагрузок с помощью определяемого пользователем пула ресурсов, определяемого <pool_name>
.
Разрешения
Требуется разрешение CONTROL SERVER
.
Примеры
В следующем примере сохраняются все текущие параметры пула ресурсов для пула default
, за исключением MAX_CPU_PERCENT
, который изменяется на 25 процентов.
ALTER RESOURCE POOL [default] WITH (MAX_CPU_PERCENT = 25);
ALTER RESOURCE GOVERNOR RECONFIGURE;
Следующий пример изменяет пул ресурсов adhocPool
следующим образом:
- Резервирует 10 процентов ЦП и 5 процентов памяти рабочей области запросов, используя
MIN_CPU_PERCENT
иMIN_MEMORY_PERCENT
соответственно. - Задает ограничение памяти рабочей области запроса на 15 процентов с помощью
MAX_MEMORY_PERCENT
. - Задает 20 процентов обратимой загрузки ЦП в 30 процентов жесткой крышки ЦП с помощью
MAX_CPU_PERCENT
иCAP_CPU_PERCENT
соответственно. - Сопоставление пула с двумя диапазонами логических ЦП (от 0 до 63 и 128 до 191) с помощью
AFFINITY SCHEDULER
.
Область применения: SQL Server 2012 (11.x) и более поздних версий.
ALTER RESOURCE POOL adhocPool
WITH (
MIN_CPU_PERCENT = 10,
MAX_CPU_PERCENT = 20,
CAP_CPU_PERCENT = 30,
MIN_MEMORY_PERCENT = 5,
MAX_MEMORY_PERCENT = 15,
AFFINITY SCHEDULER = (0 TO 63, 128 TO 191)
);
ALTER RESOURCE GOVERNOR RECONFIGURE;
Связанное содержимое
- регулятора ресурсов
- пул ресурсов регулятора ресурсов
- Изменение параметров пула ресурсов
- CREATE RESOURCE POOL
- DROP RESOURCE POOL
- CREATE WORKLOAD GROUP
- ALTER WORKLOAD GROUP
- ГРУППЫ РАБОЧЕЙ НАГРУЗКИ
DROP - ALTER RESOURCE GOVERNOR