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)

DROP WORKLOAD GROUP (Transact-SQL)

ALTER RESOURCE GOVERNOR (Transact-SQL)