ALTER RESOURCE POOL (Transact-SQL)
變更 SQL Server 中現有的資源管理員資源集區組態。
適用於:SQL Server (SQL Server 2008 至目前版本)。 |
語法
ALTER RESOURCE POOL { pool_name | "default" }
[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]
引數
{ pool_name | "default" }
現有使用者定義之資源集區的名稱,或是安裝 SQL Server 時建立之預設資源集區的名稱。搭配 ALTER RESOURCE POOL 使用時,"default" 必須加上引號 ("") 或方括號 ([]) 才能避免與系統保留字 DEFAULT 產生衝突。 如需詳細資訊,請參閱<資料庫識別碼>。
注意
預先定義的工作負載群組和資源集區都會使用小寫名稱,例如 "default"。如果是使用區分大小寫之定序的伺服器,則應該將此列入考量。具有不區分大小寫之定序 (如 SQL_Latin1_General_CP1_CI_AS) 的伺服器會將 "default" 和 "Default" 視為相同。
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
適用於:SQL Server 2012 至 SQL Server 2014。
針對資源集區中的要求指定目標 CPU 容量上限。 value 是預設值為 100 的整數。 允許的 value 範圍從 1 至 100。
注意
由於 CPU 管理的統計本質,您可能會注意到偶爾會有尖峰超過 CAP_CPU_PERCENT 中所指定的值。
AFFINITY {SCHEDULER = AUTO | (Scheduler_range_spec) | NUMANODE = (NUMA_node_range_spec)}
適用於:SQL Server 2012 至 SQL Server 2014。
將資源集區附加至特定排程器。 預設值是 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。MIN_IOPS_PER_VOLUME =value
適用於:SQL Server 2014 至 SQL Server 2014。
指定要為資源集區保留之每個磁碟區的每秒 I/O 作業數 (IOPS) 最小值。 允許的 value 範圍從 0 至 2^31-1 (2,147,483,647)。 指定 0 表示集區沒有最小臨界值。
MAX_IOPS_PER_VOLUME =value
適用於:SQL Server 2014 至 SQL Server 2014。
指定要允許資源集區使用之每個磁碟區的每秒 I/O 作業數 (IOPS) 最大值。 允許的 value 範圍從 0 至 2^31-1 (2,147,483,647)。 指定 0 可為集區設定無限的臨界值。 預設值為 0。
如果集區的 MAX_IOPS_PER_VOLUME 設定為 0,則完全不會管制集區,且即使其他集區設定 MIN_IOPS_PER_VOLUME,該集區也會保留系統中的所有 IOPS。 在此情況下,如果您希望此集區受 IO 管制,建議您將此集區的 MAX_IOPS_PER_VOLUME 值設定為較高的數字 (例如最大值 2^31-1)。
備註
MAX_CPU_PERCENT 和 MAX_MEMORY_PERCENT 必須分別大於或等於 MIN_CPU_PERCENT 和 MIN_MEMORY_PERCENT。
MAX_CPU_PERCENT 可以使用超出 MAX_CPU_PERCENT 值的 CPU 容量 (如果可用的話)。 雖然可能會有週期性尖峰超出 CAP_CPU_PERCENT,但是工作負載不應該長時間超過 CAP_CPU_PERCENT,即使有額外的 CPU 容量可用。
每個相似化元件 (排程器或 NUMA 節點) 的 CPU 百分比總計不應該超過 100%。
當您要執行 DDL 陳述式時,建議您先熟悉資源管理員的狀態。 如需詳細資訊,請參閱<資源管理員>。
權限
需要 CONTROL SERVER 權限。
範例
下列範例會保留 default 集區上的所有預設資源集區設定,除了變更為 25 的 MAX_CPU_PERCENT 之外。
ALTER RESOURCE POOL "default"
WITH
( MAX_CPU_PERCENT = 25);
GO
ALTER RESOURCE GOVERNOR RECONFIGURE;
GO
在下列範例中,CAP_CPU_PERCENT 會將硬體上限設定為 80%,而且 AFFINITY SCHEDULER 會設定為個別值 8 以及 12 到 16 的範圍。
適用於:SQL Server 2012 至 SQL Server 2014。 |
ALTER RESOURCE POOL Pool25
WITH(
MIN_CPU_PERCENT = 5,
MAX_CPU_PERCENT = 10,
CAP_CPU_PERCENT = 80,
AFFINITY SCHEDULER = (8, 12 TO 16),
MIN_MEMORY_PERCENT = 5,
MAX_MEMORY_PERCENT = 15
);
GO
ALTER RESOURCE GOVERNOR RECONFIGURE;
GO
請參閱
參考
CREATE 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)