CREATE RESOURCE POOL (Transact-SQL)

Создает пул ресурсов регулятора ресурсов в SQL Server. Пул ресурсов представляет подмножество физических ресурсов (память, процессоры и ввод-вывод) экземпляра компонента Database Engine. Регулятор ресурсов позволяет администратору базы данных распределять ресурсы сервера по пулам ресурсов, используя до 64 пулов. Регулятор ресурсов доступен не во всех выпусках SQL Server. Перечень функций, поддерживаемых выпусками SQL Server, см. в разделе Функции, поддерживаемые различными выпусками SQL Server 2014.

Применимо для следующих объектов: SQL Server (начиная с SQL Server 2008 до текущей версии).

Значок ссылки на раздел Синтаксические обозначения в 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 ]
        [ [ , ] 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
    Определяемое пользователем имя для пула ресурсов. Аргумент 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

    Применимо для следующих объектов: С SQL Server 2012 по SQL Server 2014 включительно.

    Задает жесткое ограничение пропускной способности ЦП, которая предоставляется всем запросам в пуле ресурсов. Ограничивает максимальный уровень пропускной способности ЦП заданным значением. Аргумент value имеет тип integer и значение по умолчанию 100. Диапазон допустимых значений для value — от 1 до 100.

  • AFFINITY {SCHEDULER = AUTO | ( <scheduler_range_spec> ) | NUMANODE = (<NUMA_node_range_spec>)}

    Применимо для следующих объектов: С SQL Server 2012 по SQL Server 2014 включительно.

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

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

    При использовании AFFINITY NUMANODE = (<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.

  • MIN_IOPS_PER_VOLUME =value

    Применимо для следующих объектов: С SQL Server 2014 по SQL Server 2014 включительно.

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

  • MAX_IOPS_PER_VOLUME =value

    Применимо для следующих объектов: С SQL Server 2014 по SQL Server 2014 включительно.

    Указывает максимальный объем операций ввода-вывода в секунду (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), если требуется, чтобы пул регулировался на ввод-вывод.

Замечания

MIN_IOPS_PER_VOLUME и MAX_IOPS_PER_VOLUME определяют минимальное и максимальное значения для операций чтения или записи в секунду. Эти операции чтения или записи могут быть любого размера и не показывают минимальную или максимальную пропускную способность.

Значения 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.

Применимо для следующих объектов: С SQL Server 2012 по SQL Server 2014 включительно.

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
      );

В следующем примере аргумент MIN_IOPS_PER_VOLUME устанавливается равным <некоторому значению>, а MAX_IOPS_PER_VOLUME — равным <некоторому значению>. Эти значения управляют физическими операциями чтения и записи при вводе-выводе, доступными для пула ресурсов.

Применимо для следующих объектов: С SQL Server 2014 по SQL Server 2014 включительно.

CREATE RESOURCE POOL PoolAdmin
WITH (
    MIN_IOPS_PER_VOLUME = 20,
    MAX_IOPS_PER_VOLUME = 100
      );

См. также

Справочник

Инструкция 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)

Основные понятия

Пул ресурсов регулятора ресурсов

Создание пула ресурсов