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.exeBxlServer.exe およびそれらにより生成された他のプロセスが制御されます。

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

Transact-SQL 構文表記規則

構文

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 ]

Note

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

引数

{ 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

関連項目