ALTER EXTERNAL RESOURCE POOL (Transact-SQL)
適用対象: SQL Server 2016 (13.x) 以降 Azure SQL Managed Instance
外部プロセスで使うことができるリソースを指定する Resource Governor 外部プールを変更します。
SQL Server 2016 (13.x) の R Services (データベース内) の場合、外部プールによって、rterm.exe
、BxlServer.exe
およびそれらにより生成された他のプロセスが制御されます。
Machine Learning Services の場合、外部プールによって、rterm.exe
、python.exe
、BxlServer.exe
、およびそれらにより生成された他のプロセスが制御されます。
構文
ALTER EXTERNAL RESOURCE POOL { pool_name | "default" }
[ WITH (
[ MAX_CPU_PERCENT = value ]
[ [ , ] MAX_MEMORY_PERCENT = value ]
[ [ , ] MAX_PROCESSES = value ]
)
]
[ ; ]
<CPU_range_spec> ::=
{ CPU_ID | CPU_ID TO CPU_ID } [ ,...n ]
ALTER EXTERNAL RESOURCE POOL { pool_name | "default" }
[ 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 | "default" }
既存のユーザー定義の外部リソース プール、または SQL Server をインストールする際に作成される既定の外部リソース プールの名前です。
"default" を ALTER EXTERNAL RESOURCE POOL
で使用する場合は、システム予約語の DEFAULT
と競合しないように、引用符 ("") または角かっこ ([]) で囲む必要があります。
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)」を参照してください。
外部リソース プールを使った Machine Learning ジョブの管理に固有の情報については、「Resource governance for machine learning in SQL Server」(SQL Server での Machine Learning のリソース管理) をご覧ください。
アクセス許可
CONTROL SERVER
権限が必要です。
例
次のステートメントは外部プールを変更して、CPU 使用率を 50% に、最大メモリ量をコンピューターで使用可能なメモリの 25% に制限します。
ALTER EXTERNAL RESOURCE POOL ep_1
WITH (
MAX_CPU_PERCENT = 50
, MAX_MEMORY_PERCENT = 25
);
GO
ALTER RESOURCE GOVERNOR RECONFIGURE;
GO
ALTER EXTERNAL RESOURCE POOL ep_1
WITH (
MAX_CPU_PERCENT = 50
, AFFINITY CPU = AUTO
, MAX_MEMORY_PERCENT = 25
);
GO
ALTER RESOURCE GOVERNOR RECONFIGURE;
GO