다음을 통해 공유


CREATE EXTERNAL RESOURCE POOL(Transact-SQL)

적용 대상: SQL Server 2016(13.x) 이상 버전

외부 프로세스에 대한 리소스를 정의하는 외부 풀을 만듭니다. 리소스 풀은 데이터베이스 엔진 인스턴스의 물리적 리소스(메모리 및 CPU)의 하위 집합을 나타냅니다. Resource Governor는 최대 64개의 리소스 풀에서 서버 리소스를 배포할 수 있습니다.

SQL Server 2016(13.x)의 R Services(In-Database)의 경우 외부 풀은 rterm.exe, BxlServer.exe 및 이에 의해 생성된 기타 프로세스를 제어합니다.

Machine Learning Services에 대해 외부 풀은 rterm.exe, python.exe, BxlServer.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 ]  

인수

pool_name
외부 리소스 풀에 대한 사용자 정의 이름입니다. pool_name은 영숫자이며 최대 128자를 포함할 수 있습니다. 이 인수는 SQL Server 인스턴스 내에서 고유해야 하며 식별자에 대한 규칙을 따라야 합니다.

MAX_CPU_PERCENT =value
CPU 경합이 있을 때 외부 리소스 풀의 받을 수 있는 모든 요청의 최대 평균 CPU 대역폭입니다. 은 정수입니다. 허용되는 value의 범위는 1에서 100까지입니다.

MAX_MEMORY_PERCENT =value
이 외부 리소스 풀의 요청에서 사용할 수 있는 총 서버 메모리를 지정합니다. 은 정수입니다. 허용되는 value의 범위는 1에서 100까지입니다.

MAX_PROCESSES =value
외부 리소스 풀에 허용되는 프로세스의 최대 수입니다. 이후에 컴퓨터 리소스에 의해서만 바인딩되는 풀에 대한 무제한 임계값은 0입니다.

MAX_CPU_PERCENT =value
CPU 경합이 있을 때 외부 리소스 풀의 받을 수 있는 모든 요청의 최대 평균 CPU 대역폭입니다. 은 정수입니다. 허용되는 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의 범위는 1에서 100까지입니다.

MAX_PROCESSES =value
외부 리소스 풀에 허용되는 프로세스의 최대 수입니다. 이후에 컴퓨터 리소스에 의해서만 바인딩되는 풀에 대한 무제한 임계값은 0입니다.

설명

데이터베이스 엔진은 ALTER RESOURCE GOVERNOR RECONFIGURE 문을 실행할 때 리소스 풀을 구현합니다.

리소스 풀에 대한 일반 정보는 Resource Governor 리소스 풀, sys.resource_governor_external_resource_pools(Transact-SQL)sys.dm_resource_governor_external_resource_pool_affinity(Transact-SQL)를 참조하세요.

기계 학습에 사용된 외부 리소스 풀 관리 관련 정보는 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

참고 항목