CREATE RESOURCE POOL(Transact-SQL)

리소스 관리자 리소스 풀을 만듭니다. 일부 Microsoft SQL Server 버전에서는 리소스 관리자를 사용할 수 없습니다. SQL Server 버전에서 지원하는 기능 목록을 보려면 SQL Server 2012 버전에서 지원하는 기능을 참조하십시오.

항목 링크 아이콘 Transact-SQL 구문 표기 규칙.

구문

CREATE RESOURCE POOL pool_name
[ WITH
    ( [ MIN_CPU_PERCENT = value ]
    [ [ , ] MAX_CPU_PERCENT = value ] 
     [ [ , ] CAP_CPU_PERCENT = value ] 
     [ [ , ] AFFINITY {SCHEDULER = AUTO | (Scheduler_range_spec) | NUMANODE = (NUMA_node_range_spec)} ] 
    [ [ , ] MIN_MEMORY_PERCENT = value ]
    [ [ , ] MAX_MEMORY_PERCENT = value ]) 
]
[;]

Scheduler_range_spec::=
{SCHED_ID | SCHED_ID TO SCHED_ID}[,…n]
NUMA_node_range_spec::=
{NUMA_node_ID | NUMA_node_ID TO NUMA_node_ID}[,…n]

인수

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

  • MIN_CPU_PERCENT =value
    CPU 경합이 있을 때 리소스 풀의 모든 요청에 대해 보장되는 평균 CPU 대역폭을 지정합니다. value는 기본값이 0인 정수입니다. value의 허용 범위는 0에서 100까지입니다.

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

  • CAP_CPU_PERCENT =value
    리소스 풀의 모든 요청에서 받을 CPU 대역폭의 하드 캡을 지정합니다. 최대 CPU 대역폭 수준을 지정된 값과 동일하게 제한합니다. value는 기본 설정이 100인 정수입니다. value의 허용 범위는 1에서 100까지입니다.

  • AFFINITY {SCHEDULER = AUTO | (Scheduler_range_spec) | NUMANODE = (<NUMA_node_range_spec>)}
    리소스 풀을 특정 스케줄러에 연결합니다. 기본값은 AUTO입니다.

    AFFINITY SCHEDULER = (Scheduler_range_spec)은 리소스 풀을 지정된 ID로 식별된 SQL Server 일정으로 매핑합니다. 이러한 ID는 sys.dm_os_schedulers(Transact-SQL)의 scheduler_id 열에 있는 값으로 매핑됩니다.

    AFFINITY NAMANODE = (NUMA_node_range_spec)을 사용하면 리소스 풀의 선호도가 지정된 NUMA 노드 또는 노드 범위에 해당하는 물리적 CPU에 매핑되는 SQL Server 스케줄러로 설정됩니다. 다음 Transact-SQL 쿼리를 사용하여 물리적 NUMA 구성과 SQL Server 스케줄러 ID 간의 매핑을 검색할 수 있습니다.

    SELECT osn.memory_node_id AS [numa_node_id], sc.cpu_id, sc.scheduler_id
    FROM sys.dm_os_nodes AS osn
    INNER JOIN sys.dm_os_schedulers AS sc ON osn.node_id = sc.parent_node_id AND sc.scheduler_id < 1048576
    
  • MIN_MEMORY_PERCENT =value
    다른 리소스 풀과 공유할 수 없으며 이 리소스 풀에 예약된 최소 메모리 양을 지정합니다. value는 정수이며 기본 설정은 0입니다. value의 허용 범위는 0~100입니다.

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

주의

MAX_CPU_PERCENT 및 MAX_MEMORY_PERCENT의 값은 MIN_CPU_PERCENT 및 MIN_MEMORY_PERCENT의 각 값보다 크거나 같아야 합니다.

CAP_CPU_PERCENT는 풀에 연결된 작업이 CAP_CPU_PERCENT 값보다 큰 값이 아닌 MAX_CPU_PERCENT 값보다 큰 CPU 용량(사용 가능한 경우)을 사용할 수 있다는 점에서 MAX_CPU_PERCENT와 다릅니다.

선호도가 설정된 각 구성 요소(스케줄러 또는 NUMA 모드)에 대한 총 CPU 비율은 100%를 초과하면 안 됩니다.

사용 권한

CONTROL SERVER 권한이 필요합니다.

다음 예에서는 bigPool라는 리소스 풀을 만드는 방법을 보여 줍니다. 이 풀은 기본 리소스 관리자 설정을 사용합니다.

CREATE RESOURCE POOL bigPool;
GO
ALTER RESOURCE GOVERNOR RECONFIGURE;
GO

다음 예에서는 CAP_CPU_PERCENT가 하드 캡을 30%로 설정하고 AFFINITY SCHEDULER가 0-63과 128-191 범위로 설정됩니다.

CREATE RESOURCE POOL PoolAdmin
WITH (
     MIN_CPU_PERCENT = 10,
     MAX_CPU_PERCENT = 20,
     CAP_CPU_PERCENT = 30,
     AFFINITY SCHEDULER = (0 TO 63, 128 TO 191),
     MIN_MEMORY_PERCENT = 5,
     MAX_MEMORY_PERCENT = 15);

주의

데이터베이스 관리자는 리소스 관리자 기능을 사용하여 서버 리소스를 최대 20개의 리소스 풀에 배치할 수 있습니다.

참고 항목

참조

ALTER RESOURCE POOL(Transact-SQL)

DROP RESOURCE POOL(Transact-SQL)

CREATE WORKLOAD GROUP(Transact-SQL)

ALTER WORKLOAD GROUP(Transact-SQL)

DROP WORKLOAD GROUP(Transact-SQL)

ALTER RESOURCE GOVERNOR(Transact-SQL)