CREATE EXTERNAL RESOURCE POOL (Transact-SQL)
適用対象: SQL Server 2016 (13.x) 以降のバージョン
外部プロセス用のリソースを定義するための外部プールを作成します。 リソース プールは、データベース エンジン インスタンスの物理リソース (メモリと CPU) のサブセットを表します。 Resource Governor を使用すると、サーバー リソースを最大 64 個のリソース プールに分散できます。
SQL Server 2016 (13.x) の R Services (データベース内) の場合、外部プールによって、rterm.exe
、BxlServer.exe
およびそれらにより生成された他のプロセスが制御されます。
Machine Learning Services の場合、外部プールによって、rterm.exe
、python.exe
、BxlServer.exe
、およびそれらにより生成された他のプロセスが制御されます。
構文
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 ]
引数
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
関連項目
- external scripts enabled サーバー構成オプション
- sp_execute_external_script (Transact-SQL)
- ALTER EXTERNAL RESOURCE POOL (Transact-SQL)
- DROP EXTERNAL RESOURCE POOL (Transact-SQL)
- CREATE RESOURCE POOL (Transact-SQL)
- CREATE WORKLOAD GROUP (Transact-SQL)
- リソース ガバナー リソース プール
- sys.resource_governor_external_resource_pools (Transact-SQL)
- sys.dm_resource_governor_external_resource_pool_affinity (Transact-SQL)
- ALTER RESOURCE GOVERNOR (Transact-SQL)