CREATE RESOURCE POOL (Transact-SQL)CREATE RESOURCE POOL (Transact-SQL)

適用対象: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

SQL ServerSQL Server でリソース ガバナー リソース プールを作成します。Creates a Resource Governor resource pool in SQL ServerSQL Server. リソース プールは、データベース エンジンのインスタンスに関する物理リソース (メモリ、CPU、および IO) のサブセットを表します。A resource pool represents a subset of the physical resources (memory, CPUs and IO) of an instance of the Database Engine. データベース管理者は、リソース ガバナーを使用することで、サーバー リソースを最大 64 個までのリソース プールに分散できます。Resource Governor enables a database administrator to distribute server resources among resource pools, up to a maximum of 64 pools. リソース ガバナーは、SQL ServerSQL Server のすべてのエディションで使用できるわけではありません。Resource Governor is not available in every edition of SQL ServerSQL Server. SQL ServerSQL Serverの各エディションでサポートされる機能の一覧については、「 SQL Server 2016 の各エディションがサポートする機能」を参照してください。For a list of features that are supported by the editions of SQL ServerSQL Server, see Features Supported by the Editions of SQL Server 2016.

トピック リンク アイコン Transact-SQL 構文表記規則Topic link icon Transact-SQL Syntax Conventions.

構文Syntax

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]  

引数Arguments

pool_namepool_name
リソース プールのユーザー定義名を指定します。Is the user-defined name for the resource pool. pool_name には英数字を最大 128 文字まで使用できます。SQL ServerSQL Server のインスタンス内で一意である必要があり、識別子のルールに従っている必要があります。pool_name is alphanumeric, can be up to 128 characters, must be unique within an instance of SQL ServerSQL Server, and must comply with the rules for identifiers.

MIN_CPU_PERCENT =valueMIN_CPU_PERCENT =value
CPU の競合がある場合に、リソース プールのすべての要求に保証される平均 CPU 帯域幅を指定します。Specifies the guaranteed average CPU bandwidth for all requests in the resource pool when there is CPU contention. value は整数で、既定の設定は 0 です。value is an integer with a default setting of 0. value の許容範囲は 0 から 100 までです。The allowed range for value is from 0 through 100.

MAX_CPU_PERCENT =valueMAX_CPU_PERCENT =value
CPU の競合がある場合に、リソース プールのすべての要求に割り当てられる最大平均 CPU 帯域幅を指定します。Specifies the maximum average CPU bandwidth that all requests in resource pool will receive when there is CPU contention. value は整数で、既定の設定は 100 です。value is an integer with a default setting of 100. value の許容範囲は 1 ~ 100 です。The allowed range for value is from 1 through 100.

CAP_CPU_PERCENT =value CAP_CPU_PERCENT =value
適用対象: SQL Server 2012 (11.x)SQL Server 2012 (11.x) 以降。Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later.

リソース プールのすべての要求に割り当てられる、CPU 帯域幅のハード キャップを指定します。Specifies a hard cap on the CPU bandwidth that all requests in the resource pool will receive. CPU の最大帯域幅レベルを、指定した値と同じレベルに制限します。Limits the maximum CPU bandwidth level to be the same as the specified value. value は整数で、既定の設定は 100 です。value is an integer with a default setting of 100. value の許容範囲は 1 ~ 100 です。The allowed range for value is from 1 through 100.

AFFINITY {SCHEDULER = AUTO | ( <scheduler_range_spec> ) | NUMANODE = (<NUMA_node_range_spec>)}AFFINITY {SCHEDULER = AUTO | ( <scheduler_range_spec> ) | NUMANODE = (<NUMA_node_range_spec>)}
適用対象: SQL Server 2012 (11.x)SQL Server 2012 (11.x) 以降。Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later.

リソース プールを特定のスケジューラにアタッチします。Attach the resource pool to specific schedulers. 既定値は AUTO です。The default value is AUTO.

AFFINITY SCHEDULER = ( <scheduler_range_spec> ) は、指定した ID によって識別される SQL ServerSQL Server スケジュールにリソース プールをマップします。AFFINITY SCHEDULER = ( <scheduler_range_spec> ) maps the resource pool to the SQL ServerSQL Server schedules identified by the given IDs. これらの ID は、sys.dm_os_schedulers (Transact-SQL) の scheduler_id 列の値にマップされます。These IDs map to the values in the scheduler_id column in sys.dm_os_schedulers (Transact-SQL).

AFFINITY NUMANODE = ( <NUMA_node_range_spec> ) を使用すると、リソース プールは、指定した NUMA ノードまたはノードの範囲に対応する物理 CPU にマップされた SQL ServerSQL Server のスケジューラに関連付けられます。When you use AFFINITY NUMANODE = ( <NUMA_node_range_spec> ), the resource pool is affinitized to the SQL ServerSQL Server schedulers that map to the physical CPUs that correspond to the given NUMA node or range of nodes. 次の Transact-SQLTransact-SQL クエリを使用して、物理 NUMA 構成と SQL ServerSQL Server スケジューラ ID のマッピングを検出できます。You can use the following Transact-SQLTransact-SQL query to discover the mapping between the physical NUMA configuration and the SQL ServerSQL Server scheduler IDs.

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 MIN_MEMORY_PERCENT =value
このリソース プール用に確保され、他のリソース プールとは共有できないメモリ量の最小値を指定します。Specifies the minimum amount of memory reserved for this resource pool that can not be shared with other resource pools. value は整数で、既定の設定は 0 です。value の許容範囲は 0 から 100 です。value is an integer with a default setting of 0 The allowed range for value is from 0 to 100.

MAX_MEMORY_PERCENT =value MAX_MEMORY_PERCENT =value
このリソース プールの要求で使用できる合計サーバー メモリを指定します。Specifies the total server memory that can be used by requests in this resource pool. value は整数で、既定の設定は 100 です。value is an integer with a default setting of 100. value の許容範囲は 1 ~ 100 です。The allowed range for value is from 1 through 100.

MIN_IOPS_PER_VOLUME =value MIN_IOPS_PER_VOLUME =value
適用対象: SQL Server 2014 (12.x)SQL Server 2014 (12.x) 以降。Applies to: SQL Server 2014 (12.x)SQL Server 2014 (12.x) and later.

リソース プール用に確保するために、ディスク ボリュームごとに、1 秒あたりの最小 I/O 操作 (IOPS) を指定します。Specifies the minimum I/O operations per second (IOPS) per disk volume to reserve for the resource pool. value の許容範囲は 0 から 2^31-1 (2,147,483,647) までです。The allowed range for value is from 0 through 2^31-1 (2,147,483,647). プールに最小しきい値を指定しない場合は 0 を指定します。Specify 0 to indicate no minimum threshold for the pool. 既定値は 0 です。The default is 0.

MAX_IOPS_PER_VOLUME =value MAX_IOPS_PER_VOLUME =value
適用対象: SQL Server 2014 (12.x)SQL Server 2014 (12.x) 以降。Applies to: SQL Server 2014 (12.x)SQL Server 2014 (12.x) and later.

リソース プールに許された、ディスク ボリュームごとの 1 秒あたりの最大 I/O 操作 (IOPS) 回数を指定します。Specifies the maximum I/O operations per second (IOPS) per disk volume to allow for the resource pool. value の許容範囲は 0 から 2^31-1 (2,147,483,647) までです。The allowed range for value is from 0 through 2^31-1 (2,147,483,647). プールに無制限のしきい値を設定する場合は 0 を指定します。Specify 0 to set an unlimited threshold for the pool. 既定値は 0 です。The default is 0.

プールの MAX_IOPS_PER_VOLUME を 0 に設定した場合、プールは管理されなくなり、他のプールで MIN_IOPS_PER_VOLUME が設定されていても、システムですべての IOPS を行うことがあります。If the MAX_IOPS_PER_VOLUME for a pool is set to 0, the pool is not governed at all and can take all the IOPS in the system even if other pools have MIN_IOPS_PER_VOLUME set. この場合、IO についてこのプールが管理されるようにするには、このプールの MAX_IOPS_PER_VOLUME の値をより大きな数値 (たとえば、最大値 2^31-1) に設定することをお勧めします。For this case, we recommend that you set the MAX_IOPS_PER_VOLUME value for this pool to a high number (for example, the maximum value 2^31-1) if you want this pool to be governed for IO.

RemarksRemarks

MIN_IOPS_PER_VOLUMEMAX_IOPS_PER_VOLUME は、1 秒あたりに行われる読み取りまたは書き込みの最小数と最大数を指定します。MIN_IOPS_PER_VOLUME and MAX_IOPS_PER_VOLUME specify the minimum and maximum reads or writes per second. これらの読み取りと書き込みでは任意のサイズを処理できます。これらの値は、最小または最大のスループットを示すものではありません。These reads or writes can be of any size and do not indicate minimum or maximum throughput.

MAX_CPU_PERCENTMAX_MEMORY_PERCENT の値は、それぞれ MIN_CPU_PERCENTMIN_MEMORY_PERCENT の値以上である必要があります。The values for MAX_CPU_PERCENT and MAX_MEMORY_PERCENT must be greater than or equal to the values for MIN_CPU_PERCENT and MIN_MEMORY_PERCENT, respectively.

CAP_CPU_PERCENTMAX_CPU_PERCENT の違いは、プールに関連付けられているワークロードが使用する CPU 処理量が、MAX_CPU_PERCENT の値を超えることはできても (利用可能な場合)、CAP_CPU_PERCENT の値を超えることはできない点です。CAP_CPU_PERCENT differs from MAX_CPU_PERCENT in that workloads associated with the pool can use CPU capacity above the value of MAX_CPU_PERCENT if it is available, but not above the value of CAP_CPU_PERCENT.

関連付けられた各コンポーネント (スケジューラまたは NUMA ノード) の CPU 使用率の合計が 100% を超えることはできません。The total CPU percentage for each affinitized component (scheduler(s) or NUMA node(s)) should not exceed 100 percent.

アクセス許可Permissions

CONTROL SERVER 権限が必要です。Requires CONTROL SERVER permission.

使用例Examples

1.リソース プールを作成する方法について説明します1. Shows how to create a resource pool

次の例では、"bigPool" というリソース プールを作成します。This example created a resource pool named "bigPool". このプールは、Resource Governor の既定の設定を使用します。This pool uses the default Resource Governor settings.

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

2.CAP_CPU_PERCENT をハード キャップに設定し、AFFINITY SCHEDULER を設定します2. Set the CAP_CPU_PERCENT to a hard cap and set AFFINITY SCHEDULER

CAP_CPU_PERCENT を 30% のハード キャップに設定し、AFFINITY SCHEDULER を 0-63、128-191 の範囲に設定します。Set the CAP_CPU_PERCENT to a hard cap of 30 percent and sets AFFINITY SCHEDULER to a range of 0 to 63, 128 to 191.

適用対象: SQL Server 2012 (11.x)SQL Server 2012 (11.x) 以降。Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later.

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 を設定します3. Set MIN_IOPS_PER_VOLUME and MAX_IOPS_PER_VOLUME

MIN_IOPS_PER_VOLUME を 20 に、MAX_IOPS_PER_VOLUME を 100 に設定します。Set MIN_IOPS_PER_VOLUME to 20 and MAX_IOPS_PER_VOLUME to 100. これらの値は、リソース プールで使用できる物理 I/O の読み取りと書き込みの操作を制御します。These values govern the physical I/O read and write operations that are available for the resource pool.

適用対象: SQL Server 2014 (12.x)SQL Server 2014 (12.x) 以降。Applies to: SQL Server 2014 (12.x)SQL Server 2014 (12.x) and later.

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

参照See Also

ALTER RESOURCE POOL (Transact-SQL) ALTER RESOURCE POOL (Transact-SQL)
DROP RESOURCE POOL (Transact-SQL) DROP RESOURCE POOL (Transact-SQL)
CREATE WORKLOAD GROUP (Transact-SQL) CREATE WORKLOAD GROUP (Transact-SQL)
ALTER WORKLOAD GROUP (Transact-SQL) ALTER WORKLOAD GROUP (Transact-SQL)
DROP WORKLOAD GROUP (Transact-SQL) DROP WORKLOAD GROUP (Transact-SQL)
ALTER RESOURCE GOVERNOR (Transact-SQL) ALTER RESOURCE GOVERNOR (Transact-SQL)
リソース ガバナー リソース プール Resource Governor Resource Pool
リソース プールの作成Create a Resource Pool