CREATE RESOURCE POOL (Transact-SQL)
建立資源管理員資源集區。 並非每個 Microsoft SQL Server 版本中都無法使用資源管理員。 如需 SQL Server 版本所支援功能的清單,請參閱<SQL Server 2012 版本支援的功能>。
語法
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) 會將資源集區對應至給定識別碼所識別的 SQL Server 排程。 這些識別碼對應至 sys.dm_os_schedulers (Transact-SQL) 中 scheduler_id 資料行的值。
當您使用 AFFINITY NAMANODE = (NUMA_node_range_spec) 時,資源集區會與對應至對應給定 NUMA 節點或節點範圍之實體 CPU 的 SQL Server 排程器相似化。 您可以使用下列 Transact-SQL 查詢探索實體 NUMA 組態與 SQL Server 排程器識別碼之間的對應。
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 與 MAX_CPU_PERCENT 不同之處在於,與集區相關聯的工作負載可以使用高於 MAX_CPU_PERCENT 值 (如果有的話) 但不高於 CAP_CPU_PERCENT 值的 CPU 容量。
每個相似化元件 (排程器或 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);
備註
資源管理員功能可讓資料庫管理員在資源集區間散發伺服器資源,最多可達 64 個集區。
請參閱
參考
ALTER RESOURCE POOL (Transact-SQL)
DROP RESOURCE POOL (Transact-SQL)
CREATE WORKLOAD GROUP (Transact-SQL)
ALTER WORKLOAD GROUP (Transact-SQL)