CREATE RESOURCE POOL (Transact-SQL)
Создает пул ресурсов регулятора ресурсов. Регулятор ресурсов доступен не во всех выпусках Microsoft SQL Server. Список функций, поддерживаемых в разных выпусках SQL Server, см. в разделе Возможности, поддерживаемые различными выпусками SQL Server 2012.
Синтаксические обозначения Transact-SQL.
Синтаксис
CREATE RESOURCE POOL pool_name
[ 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 ])
]
[;]
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
Определяемое пользователем имя для пула ресурсов. Аргумент pool_name является алфавитно-цифровым и может содержать до 128 символов. Данный аргумент должен быть уникальным в экземпляре SQL Server и соответствовать правилам для идентификаторов.MIN_CPU_PERCENT =value
Указывает гарантированную среднюю пропускную способность ЦП для всех запросов в пуле ресурсов при возникновении состязания использования ЦП. Аргумент value имеет тип integer и значение по умолчанию 0. Диапазон допустимых значений value — от 0 до 100.MAX_CPU_PERCENT =value
Указывает максимальную среднюю пропускную способность ЦП для всех запросов в пуле ресурсов при возникновении состязания использования ЦП. Аргумент value имеет тип integer и значение по умолчанию 100. Диапазон допустимых значений для value — от 1 до 100.CAP_CPU_PERCENT =value
Задает жесткое ограничение пропускной способности ЦП, которая предоставляется всем запросам в пуле ресурсов. Ограничивает максимальный уровень пропускной способности ЦП заданным значением. Аргумент value имеет тип integer и значение по умолчанию 100. Диапазон допустимых значений для value — от 1 до 100.AFFINITY {SCHEDULER = AUTO | (Scheduler_range_spec) | NUMANODE = (<NUMA_node_range_spec>)}
Подключает пул ресурсов к заданным планировщикам. Значение по умолчанию — AUTO.AFFINITY SCHEDULER = (Scheduler_range_spec) сопоставляет пул ресурсов с расписаниями 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
Указывает минимальный объем памяти, резервируемый для данного пула ресурсов, который не подлежит использованию совместно с другими пулами ресурсов. Аргумент value является целым числом, значение по умолчанию — 0. Разрешенный диапазон значений value составляет от 0 до 100.MAX_MEMORY_PERCENT =value
Указывает общий объем памяти сервера, который может использоваться для запросов в данном пуле ресурсов. Аргумент value имеет тип integer и значение по умолчанию 100. Диапазон допустимых значений для value — от 1 до 100.
Замечания
Значения MAX_CPU_PERCENT и MAX_MEMORY_PERCENT должны быть больше или равны значениям MIN_CPU_PERCENT и MIN_MEMORY_PERCENT соответственно.
CAP_CPU_PERCENT отличается от MAX_CPU_PERCENT, поскольку рабочие нагрузки, связанные с пулом, могут использовать ресурсы ЦП, превышающие значение MAX_CPU_PERCENT, если они доступны, но не могут использовать ресурсы, превышающие CAP_CPU_PERCENT.
Общий процент ЦП для каждого соответствующего компонента (планировщики или узлы NUMA) не должен превышать 100 %.
Разрешения
Требуется разрешение CONTROL SERVER.
Примеры
В следующем примере показано, как создать пул ресурсов с именем bigPool. Для этого пула используются параметры по умолчанию регулятора ресурсов.
CREATE RESOURCE POOL bigPool;
GO
ALTER RESOURCE GOVERNOR RECONFIGURE;
GO
В следующем примере CAP_CPU_PERCENT задает жесткое ограничение 30 %, а параметр AFFINITY SCHEDULER устанавливается в диапазон от 0 до 63 и от 128 до 191.
CREATE RESOURCE POOL PoolAdmin
WITH (
MIN_CPU_PERCENT = 10,
MAX_CPU_PERCENT = 20,
CAP_CPU_PERCENT = 30,
AFFINITY SCHEDULER = (0 TO 63, 128 TO 191),
MIN_MEMORY_PERCENT = 5,
MAX_MEMORY_PERCENT = 15);
Замечания
Регулятор ресурсов позволяет администратору базы данных распределять ресурсы сервера между пулами ресурсов, используя до 64 пулов.
См. также
Справочник
Инструкция ALTER RESOURCE POOL (Transact-SQL)
DROP RESOURCE POOL (Transact-SQL)
CREATE WORKLOAD GROUP (Transact-SQL)
ALTER WORKLOAD GROUP (Transact-SQL)