CREATE RESOURCE POOL (Transact-SQL)

Область применения: SQL Server Управляемый экземпляр SQL Azure

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

Соглашения о синтаксисе 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 = значение
Область применения: SQL Server 2012 (11.x) и более поздних версий.

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

AFFINITY {SCHEDULER = AUTO | ( <указатель_диапазона_планировщика> ) | NUMANODE = (<указатель_диапазона_узла_NUMA>)}
Область применения: 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, которые сопоставлены с физическими процессорами (CPU), соответствующими данному узлу или диапазону узлов 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 является целым числом, значение по умолчанию — 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, чтобы не указывать минимальный порог для пула. По умолчанию установлено значение 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_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.

Примеры

1. Показывает, как создать пул ресурсов

В этом примере создается пул ресурсов с именем bigPool. Для этого пула используются параметры по умолчанию регулятора ресурсов.

CREATE RESOURCE POOL bigPool;  
GO  
ALTER RESOURCE GOVERNOR RECONFIGURE;  
GO  

2. Задайте для CAP_CPU_PERCENT жесткое ограничение и установите ПЛАНИРОВЩИК AFFINITY

Задайте для параметра CAP_CPU_PERCENT жесткое ограничение 30 %, а для параметра AFFINITY SCHEDULER — диапазон 0–63, 128–191.

Область применения: SQL Server 2012 (11.x) и более поздних версий.

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

3. Установка MIN_IOPS_PER_VOLUME и MAX_IOPS_PER_VOLUME

Задайте для параметра MIN_IOPS_PER_VOLUME значение 20, а для параметра MAX_IOPS_PER_VOLUME — 100. Эти значения управляют физическими операциями чтения и записи при вводе-выводе, доступными для пула ресурсов.

Область применения: SQL Server 2014 (12.x) и более поздних версий.

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)
Пул ресурсов регулятора ресурсов
Создание пула ресурсов