CREATE EXTERNAL RESOURCE POOL (Transact-SQL)

適用対象: SQL Server 2016 (13.x) 以降のバージョン

外部プロセス用のリソースを定義するための外部プールを作成します。 リソース プールは、データベース エンジン インスタンスの物理リソース (メモリと CPU) のサブセットを表します。 Resource Governor を使用すると、サーバー リソースを最大 64 個のリソース プールに分散できます。

SQL Server 2016 (13.x) の R Services (データベース内) の場合、外部プールによって、rterm.exeBxlServer.exe およびそれらにより生成された他のプロセスが制御されます。

Machine Learning Services の場合、外部プールによって、rterm.exepython.exeBxlServer.exe、およびそれらにより生成された他のプロセスが制御されます。

Transact-SQL 構文表記規則

構文

CREATE EXTERNAL RESOURCE POOL pool_name  
[ WITH (  
    [ MAX_CPU_PERCENT = value ]  
    [ [ , ] MAX_MEMORY_PERCENT = value ]  
    [ [ , ] MAX_PROCESSES = value ]   
    )   
]  
[ ; ]  

<CPU_range_spec> ::=    
{ CPU_ID | CPU_ID  TO CPU_ID } [ ,...n ]  
CREATE EXTERNAL RESOURCE POOL pool_name  
[ WITH (  
    [ MAX_CPU_PERCENT = value ]  
    [ [ , ] AFFINITY CPU =    
            {  
                AUTO   
              | ( <cpu_range_spec> )   
              | NUMANODE = ( <NUMA_node_id> )   
            } ]   
    [ [ , ] MAX_MEMORY_PERCENT = value ]  
    [ [ , ] MAX_PROCESSES = value ]   
    )   
]  
[ ; ]  

<CPU_range_spec> ::=    
{ CPU_ID | CPU_ID  TO CPU_ID } [ ,...n ]  

Note

SQL Server 2014 (12.x) 以前のバージョンの Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。

引数

pool_name
外部リソース プールのユーザー定義名を指定します。 pool_name には、最大 128 文字の英数字を指定できます。 この引数は、SQL Server のインスタンス内で一意であり、識別子のルールに従っている必要があります。

MAX_CPU_PERCENT =value
CPU の競合がある場合に、外部リソース プールで受け取ることのできる全要求に対する最大平均 CPU 帯域幅。 value は整数です。 value の許容範囲は 1 ~ 100 です。

MAX_MEMORY_PERCENT =value
この外部リソース プールの要求で使用できる合計サーバー メモリを指定します。 value は整数です。 value の許容範囲は 1 ~ 100 です。

MAX_PROCESSES =value
外部リソース プールに許されるプロセスの最大数。 0 を指定すると、プールのしきい値は無制限になり、その後はコンピューターのリソースによってのみ拘束されます。

MAX_CPU_PERCENT =value
CPU の競合がある場合に、外部リソース プールで受け取ることのできる全要求に対する最大平均 CPU 帯域幅。 value は整数です。 value の許容範囲は 1 ~ 100 です。

AFFINITY {CPU = AUTO | ( <CPU_range_spec>) | NUMANODE = (<NUMA_node_range_spec>)} を使用すると、外部リソース プールが特定の CPU にアタッチされます。

AFFINITY CPU = (<CPU_range_spec>) を使用すると、指定した CPU_ID によって識別される SQL Server CPU に外部リソース プールがマップされます。

AFFINITY NUMANODE = **(<NUMA_node_range_spec>)を使用する場合、外部リソース プールは、指定した NUMA ノードまたはノードの範囲に対応する SQL Server 物理 CPU に関連付けられます。

MAX_MEMORY_PERCENT =value
この外部リソース プールの要求で使用できる合計サーバー メモリを指定します。 value は整数です。 value の許容範囲は 1 ~ 100 です。

MAX_PROCESSES =value
外部リソース プールに許されるプロセスの最大数。 0 を指定すると、プールのしきい値は無制限になり、その後はコンピューターのリソースによってのみ拘束されます。

解説

ALTER RESOURCE GOVERNOR RECONFIGURE ステートメントを実行すると、データベース エンジンによってリソース プールが実装されます。

リソース プールの一般的な情報については、「リソース ガバナー リソース プール」、「sys.resource_governor_external_resource_pools (Transact-SQL)」、および「sys.dm_resource_governor_external_resource_pool_affinity (Transact-SQL)」を参照してください。

機械学習で使用される外部リソース プールの管理に固有の情報については、「Resource governance for machine learning in SQL Server (SQL Server での機械学習のリソース管理)」をご覧ください。

アクセス許可

CONTROL SERVER 権限が必要です。

外部プールでは CPU 使用率が 75% に制限されています。 最大メモリは、コンピューターで使用可能なメモリの 30% です。

CREATE EXTERNAL RESOURCE POOL ep_1
WITH (  
    MAX_CPU_PERCENT = 75
    , MAX_MEMORY_PERCENT = 30
);
GO
ALTER RESOURCE GOVERNOR RECONFIGURE;
GO
CREATE EXTERNAL RESOURCE POOL ep_1
WITH (  
    MAX_CPU_PERCENT = 75
    , AFFINITY CPU = AUTO
    , MAX_MEMORY_PERCENT = 30
);
GO
ALTER RESOURCE GOVERNOR RECONFIGURE;
GO

関連項目