CREATE RESOURCE POOL (Transact-SQL)CREATE RESOURCE POOL (Transact-SQL)

DIESES THEMA GILT FÜR:jaSQL Server (ab 2008)neinAzure SQL-DatenbankneinAzure SQL Data Warehouse neinParallel Data Warehouse THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Erstellt einen Ressourcenpool für die Ressourcenkontrolle in SQL ServerSQL Server.Creates a Resource Governor resource pool in SQL ServerSQL Server. Ein Ressourcenpool stellt eine Teilmenge der physischen Ressourcen (Arbeitsspeicher, CPUs und E/A) einer Instanz des Datenbankmoduls dar.A resource pool represents a subset of the physical resources (memory, CPUs and IO) of an instance of the Database Engine. Mit der Ressourcenkontrolle kann ein Datenbankadministrator Serverressourcen auf Ressourcenpools verteilen, bis zu maximal 64 Pools.Resource Governor enables a database administrator to distribute server resources among resource pools, up to a maximum of 64 pools. Die Ressourcenkontrolle ist nicht in jeder Edition von SQL ServerSQL Server verfügbar.Resource Governor is not available in every edition of SQL ServerSQL Server. Eine Liste der Funktionen, die von den SQL ServerSQL Server-Editionen unterstützt werden, finden Sie unter Von den SQL Server 2016-Editionen unterstützte Funktionen.For a list of features that are supported by the editions of SQL ServerSQL Server, see Features Supported by the Editions of SQL Server 2016.

Symbol für Themenlink Transact-SQL-Syntaxkonventionen.Topic link icon Transact-SQL Syntax Conventions.

SyntaxSyntax

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 ]  
        [ [ , ] MIN_IOPS_PER_VOLUME = value ]  
        [ [ , ] MAX_IOPS_PER_VOLUME = 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]  

ArgumenteArguments

pool_namepool_name
Der benutzerdefinierte Name für den Ressourcenpool.Is the user-defined name for the resource pool. Pool_name ist alphanumerisch, kann bis zu 128 Zeichen sein, muss innerhalb einer Instanz eindeutig sein SQL ServerSQL Server, und Sie müssen den Regeln für entsprechen Bezeichner.pool_name is alphanumeric, can be up to 128 characters, must be unique within an instance of SQL ServerSQL Server, and must comply with the rules for identifiers.

MIN_CPU_PERCENT =WertMIN_CPU_PERCENT =value
Gibt die garantierte durchschnittliche CPU-Bandbreite für alle Anforderungen im Ressourcenpool an, wenn CPU-Konflikte bestehen.Specifies the guaranteed average CPU bandwidth for all requests in the resource pool when there is CPU contention. Wert ist eine ganze Zahl mit einem Standardwert von 0.value is an integer with a default setting of 0. Der zulässige Bereich für Wert liegt zwischen 0 und 100.The allowed range for value is from 0 through 100.

MAX_CPU_PERCENT =WertMAX_CPU_PERCENT =value
Gibt die maximale durchschnittliche CPU-Bandbreite, die allen Anforderungen im Ressourcenpool zugewiesen wird, wenn CPU-Konflikte bestehen.Specifies the maximum average CPU bandwidth that all requests in resource pool will receive when there is CPU contention. Wert ist eine ganze Zahl mit einem Standardwert von 100.value is an integer with a default setting of 100. Der zulässige Bereich für Wert liegt zwischen 1 und 100.The allowed range for value is from 1 through 100.

CAP_CPU_PERCENT =WertCAP_CPU_PERCENT =value
Gilt für: SQL Server 2012SQL Server 2012 bis SQL Server 2017SQL Server 2017.Applies to: SQL Server 2012SQL Server 2012 through SQL Server 2017SQL Server 2017.

Legt eine feste Obergrenze für die CPU-Bandbreite fest, die für alle Anforderungen im Ressourcenpool gilt.Specifies a hard cap on the CPU bandwidth that all requests in the resource pool will receive. Beschränkt die maximale CPU-Bandbreitenstufe auf den angegebenen Wert.Limits the maximum CPU bandwidth level to be the same as the specified value. Wert ist eine ganze Zahl mit einem Standardwert von 100.value is an integer with a default setting of 100. Der zulässige Bereich für Wert liegt zwischen 1 und 100.The allowed range for value is from 1 through 100.

AFFINITÄT {SCHEDULER = AUTO | ( <Scheduler_range_spec >) | NUMANODE = (<NUMA_node_range_spec >)} betrifft: SQL Server 2012SQL Server 2012 über SQL Server 2017SQL Server 2017.AFFINITY {SCHEDULER = AUTO | ( <scheduler_range_spec> ) | NUMANODE = (<NUMA_node_range_spec>)} Applies to: SQL Server 2012SQL Server 2012 through SQL Server 2017SQL Server 2017.

Fügt den Ressourcenpool an bestimmte Zeitplanungsmodule an.Attach the resource pool to specific schedulers. Der Standardwert ist AUTO.The default value is AUTO.

AFFINITY SCHEDULER = ( <Scheduler_range_spec > ) ordnet den Ressourcenpool der SQL ServerSQL Server Zeitpläne, die von den angegebenen IDs identifizierten.AFFINITY SCHEDULER = ( <scheduler_range_spec> ) maps the resource pool to the SQL ServerSQL Server schedules identified by the given IDs. Diese IDs zugeordnet werden, um die Werte in der Scheduler_id-Spalte in DM_OS_SCHEDULERS ( Transact-SQL ) .These IDs map to the values in the scheduler_id column in sys.dm_os_schedulers (Transact-SQL).

Bei Verwendung von AFFINITY NUMANODE = ( <NUMA_node_range_spec > ), der Ressourcenpool zugeordnet ist, die SQL ServerSQL Server Planer, die den physischen CPUs zugeordnet werden, um entsprechen, die angegebenen NUMA-Knoten oder-Knotenbereich.When you use AFFINITY NUMANODE = ( <NUMA_node_range_spec> ), the resource pool is affinitized to the SQL ServerSQL Server schedulers that map to the physical CPUs that correspond to the given NUMA node or range of nodes. Sie können die Zuordnung zwischen der physischen NUMA-Konfiguration und den Transact-SQLTransact-SQL-Zeitplanungsmodul-IDs mithilfe der folgenden SQL ServerSQL Server-Abfrage ermitteln.You can use the following Transact-SQLTransact-SQL query to discover the mapping between the physical NUMA configuration and the SQL ServerSQL Server scheduler IDs.

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 =WertMIN_MEMORY_PERCENT =value
Gibt den Mindestarbeitsspeicher an, der für diesen Ressourcenpool reserviert ist und nicht gemeinsam mit anderen Ressourcenpools verwendet werden kann.Specifies the minimum amount of memory reserved for this resource pool that can not be shared with other resource pools. Wert ist eine ganze Zahl mit einem Standardwert von 0 der zulässige Bereich für Wert liegt zwischen 0 und 100.value is an integer with a default setting of 0 The allowed range for value is from 0 to 100.

MAX_MEMORY_PERCENT =WertMAX_MEMORY_PERCENT =value
Gibt den gesamten Serverspeicher an, der für Anforderungen in diesem Ressourcenpool verwendet werden kann.Specifies the total server memory that can be used by requests in this resource pool. Wert ist eine ganze Zahl mit einem Standardwert von 100.value is an integer with a default setting of 100. Der zulässige Bereich für Wert liegt zwischen 1 und 100.The allowed range for value is from 1 through 100.

MIN_IOPS_PER_VOLUME =WertMIN_IOPS_PER_VOLUME =value
Gilt für: SQL Server 2014SQL Server 2014 bis SQL Server 2017SQL Server 2017.Applies to: SQL Server 2014SQL Server 2014 through SQL Server 2017SQL Server 2017.

Gibt die minimalen E/A-Vorgänge pro Sekunde (IOPS) pro Datenträgervolume an, die für den Ressourcenpool reserviert werden sollen.Specifies the minimum I/O operations per second (IOPS) per disk volume to reserve for the resource pool. Der zulässige Bereich für Wert liegt zwischen 0 bis 2 ^ 31-1 (2.147.483.647).The allowed range for value is from 0 through 2^31-1 (2,147,483,647). 0 gibt an, dass kein minimaler Schwellenwert für den Pool gilt.Specify 0 to indicate no minimum threshold for the pool. Die Standardeinstellung ist 0.The default is 0.

MAX_IOPS_PER_VOLUME =WertMAX_IOPS_PER_VOLUME =value
Gilt für: SQL Server 2014SQL Server 2014 bis SQL Server 2017SQL Server 2017.Applies to: SQL Server 2014SQL Server 2014 through SQL Server 2017SQL Server 2017.

Gibt die maximalen E/A-Vorgänge pro Sekunde (IOPS) pro Datenträgervolume an, die für den Ressourcenpool zulässig sein sollen.Specifies the maximum I/O operations per second (IOPS) per disk volume to allow for the resource pool. Der zulässige Bereich für Wert liegt zwischen 0 bis 2 ^ 31-1 (2.147.483.647).The allowed range for value is from 0 through 2^31-1 (2,147,483,647). 0 gibt einen unbegrenzten Schwellenwert für den Pool an.Specify 0 to set an unlimited threshold for the pool. Die Standardeinstellung ist 0.The default is 0.

Wenn MAX_IOPS_PER_VOLUME für einen Pool auf den Wert 0 festgelegt ist, wird der Pool überhaupt nicht kontrolliert und kann alle IOPS im System annehmen, selbst wenn für andere Pools MIN_IOPS_PER_VOLUME festgelegt ist.If the MAX_IOPS_PER_VOLUME for a pool is set to 0, the pool is not governed at all and can take all the IOPS in the system even if other pools have MIN_IOPS_PER_VOLUME set. Für diesen Fall wird empfohlen, dass Sie den MAX_IOPS_PER_VOLUME-Wert für diesen Pool auf eine höhere Zahl festlegen (z. B. auf den Maximalwert 2^31-1), wenn E/A-Vorgänge für diesen Pool kontrolliert werden sollen.For this case, we recommend that you set the MAX_IOPS_PER_VOLUME value for this pool to a high number (for example, the maximum value 2^31-1) if you want this pool to be governed for IO.

HinweiseRemarks

MIN_IOPS_PER_VOLUME und MAX_IOPS_PER_VOLUME geben das Minimum und das Maximum für Lese- und Schreibvorgänge pro Sekunde an.MIN_IOPS_PER_VOLUME and MAX_IOPS_PER_VOLUME specify the minimum and maximum reads or writes per second. Die Lese- und Schreibvorgänge können eine beliebige Größe haben und geben daher keinen Aufschluss über den minimalen bzw. maximalen Durchsatz.These reads or writes can be of any size and do not indicate minimum or maximum throughput.

Die Werte für MAX_CPU_PERCENT und MAX_MEMORY_PERCENT müssen größer oder gleich den Werten für MIN_CPU_PERCENT bzw. MIN_MEMORY_PERCENT sein.The values for MAX_CPU_PERCENT and MAX_MEMORY_PERCENT must be greater than or equal to the values for MIN_CPU_PERCENT and MIN_MEMORY_PERCENT, respectively.

CAP_CPU_PERCENT unterscheidet sich insofern von MAX_CPU_PERCENT, als dem Pool zugeordnete Arbeitsauslastungen CPU-Kapazität über dem Wert von MAX_CPU_PERCENT verwenden können, sofern sie verfügbar ist, aber nicht über dem Wert von CAP_CPU_PERCENT.CAP_CPU_PERCENT differs from MAX_CPU_PERCENT in that workloads associated with the pool can use CPU capacity above the value of MAX_CPU_PERCENT if it is available, but not above the value of CAP_CPU_PERCENT.

Der gesamte CPU-Prozentsatz für jede zugeordnete Komponente (Zeitplanungsmodul(e) oder NUMA-Knoten) darf 100 % nicht überschreiten.The total CPU percentage for each affinitized component (scheduler(s) or NUMA node(s)) should not exceed 100%.

BerechtigungenPermissions

Erfordert die CONTROL SERVER-Berechtigung.Requires CONTROL SERVER permission.

BeispieleExamples

Das folgende Beispiel zeigt, wie ein Ressourcenpool mit der Bezeichnung bigPool erstellt wird.The following example shows how to create a resource pool named bigPool. Dieser Pool verwendet die Standardeinstellungen der Ressourcenkontrolle.This pool uses the default Resource Governor settings.

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

Im folgenden Beispiel werden CAP_CPU_PERCENT auf die feste Obergrenze 30 % und AFFINITY SCHEDULER auf einen Bereich von 0 bis 63, 128 bis 191 festgelegt.The following example sets the CAP_CPU_PERCENT to a hard cap of 30% and sets AFFINITY SCHEDULER to a range of 0 to 63, 128 to 191.

Gilt für: SQL Server 2012SQL Server 2012 bis SQL Server 2017SQL Server 2017.Applies to: SQL Server 2012SQL Server 2012 through SQL Server 2017SQL Server 2017.

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  
      );  

Im folgenden Beispiel wird MIN_IOPS_PER_VOLUME auf <einige Wert > und MAX_IOPS_PER_VOLUME auf <einige Wert >.The following example sets MIN_IOPS_PER_VOLUME to <some value> and MAX_IOPS_PER_VOLUME to <some value>. Diese Werte bestimmen die physischen E/A-Lese- und Schreibvorgänge, die für den Ressourcenpool verfügbar sind.These values govern the physical I/O read and write operations that are available for the resource pool.

Gilt für: SQL Server 2014SQL Server 2014 bis SQL Server 2017SQL Server 2017.Applies to: SQL Server 2014SQL Server 2014 through SQL Server 2017SQL Server 2017.

CREATE RESOURCE POOL PoolAdmin  
WITH (  
    MIN_IOPS_PER_VOLUME = 20,  
    MAX_IOPS_PER_VOLUME = 100  
      );  

Siehe auchSee Also

ALTER RESOURCE POOL (Transact-SQL) ALTER RESOURCE POOL (Transact-SQL)
DROP RESOURCE POOL (Transact-SQL) DROP RESOURCE POOL (Transact-SQL)
CREATE WORKLOAD GROUP (Transact-SQL) CREATE WORKLOAD GROUP (Transact-SQL)
ALTER WORKLOAD GROUP (Transact-SQL) ALTER WORKLOAD GROUP (Transact-SQL)
DROP WORKLOAD GROUP (Transact-SQL) DROP WORKLOAD GROUP (Transact-SQL)
ALTER RESOURCE GOVERNOR (Transact-SQL) ALTER RESOURCE GOVERNOR (Transact-SQL)
Ressourcenpool für die Ressourcenkontrolle Resource Governor Resource Pool
Erstellen eines RessourcenpoolsCreate a Resource Pool