ALTER WORKLOAD GROUP (Transact-SQL)
變更現有的資源管理員工作負載群組組態,並將其指派給資源管理員資源集區。
語法
ALTER WORKLOAD GROUP { group_name | "default" }
[ WITH
([ IMPORTANCE = { LOW | MEDIUM | HIGH } ]
[ [ , ] REQUEST_MAX_MEMORY_GRANT_PERCENT =value ]
[ [ , ] REQUEST_MAX_CPU_TIME_SEC =value ]
[ [ , ] REQUEST_MEMORY_GRANT_TIMEOUT_SEC =value ]
[ [ , ] MAX_DOP =value ]
[ [ , ] GROUP_MAX_REQUESTS =value ] )
]
[ USING { pool_name | "default" } ]
[ ; ]
引數
group_name | "default"
現有使用者定義之工作負載群組的名稱,或是安裝 SQL Server 2008 時建立之資源管理員預設工作負載群組的名稱。搭配 ALTER WORKLOAD GROUP 使用時,"default" 選項必須加上引號 ("") 或方括號 ([]) 才能避免與系統保留字 DEFAULT 產生衝突。如需詳細資訊,請參閱<分隔識別碼 (Database Engine)>。
[!附註]
預先定義的工作負載群組和資源集區都會使用小寫名稱,例如 "default"。如果是使用區分大小寫之定序的伺服器,則應該將此列入考量。具有不區分大小寫之定序 (如 SQL_Latin1_General_CP1_CI_AS) 的伺服器會將 "default" 和 "Default" 視為相同。
IMPORTANCE = { LOW | MEDIUM | HIGH }
指定要求在工作負載群組中的相對重要性。重要性為下列其中一項:LOW
MEDIUM (預設值)
HIGH
[!附註]
每個重要性設定在內部都會儲存為計算所使用的數字。
IMPORTANCE 的資源集區範圍為本機;相同資源集區內部不同重要性的工作負載群組會彼此影響,但不會影響另一個資源集區中的工作負載群組。
REQUEST_MAX_MEMORY_GRANT_PERCENT =value
指定單一要求可由集區中獲取的記憶體最大數量。這個百分比相對於 MAX_MEMORY_PERCENT 所指定的資源集區大小。[!附註]
指定的數量僅參考查詢執行授與記憶體。
value 必須為 0 或正整數。允許的 value 範圍從 0 至 100。value 的預設值為 25。
請注意下列事項:
將 value 設定為 0 會避免執行使用者定義之工作負載群組內具有 SORT 和 HASH JOIN 作業的查詢。
我們不建議您將 value 設定為大於 70 的值,因為如果其他並行查詢正在執行,伺服器可能無法將足夠的記憶體擱置在一旁。最後,這可能會導致查詢逾時錯誤 8645。
[!附註]
如果查詢記憶體需求超過這個參數所指定的限制,伺服器會執行以下作業:
如果是使用者定義的工作負載群組,伺服器會嘗試減少查詢的平行處理原則程度,直到記憶體需求低於此限制,或是直到平行處理原則程度等於 1 為止。如果查詢記憶體需求仍然大於此限制,將會發生錯誤 8657。
如果是內部和預設的工作負載群組,伺服器會允許查詢取得所需的記憶體。
請注意,如果伺服器沒有足夠的實體記憶體,這兩種情況都會受限於逾時錯誤 8645。
如需有關資源管理員錯誤訊息的詳細資訊,請參閱<疑難排解資源管理員>。
REQUEST_MAX_CPU_TIME_SEC =value
指定在查詢失敗前,查詢能夠等待資源變成可用資源的最大時間 (以秒為單位)。value 必須為零或正整數。value 的預設值 0 會根據查詢成本使用內部計算來判斷最大時間。[!附註]
資源管理員不會在超過最大時間時阻止要求繼續執行。不過,系統將會產生某個事件。如需詳細資訊,請參閱<CPU Threshold Exceeded 事件類別>。
REQUEST_MEMORY_GRANT_TIMEOUT_SEC =value
指定查詢能夠等待記憶體授權 (工作緩衝區記憶體) 變成可用的最大時間 (以秒為單位)。[!附註]
到達記憶體授權的逾時值時,查詢不一定會失敗。只有當有太多並行的查詢正在執行時,查詢才會失敗。否則,查詢可能只會得到最小的記憶體授權,導致查詢效能降低。
value 必須是正整數。value 的預設值 0 會根據查詢成本使用內部計算來判斷最大時間。
MAX_DOP =value
為平行要求指定最大平行處理原則的程度 (DOP)。value 必須為 0 或正整數。允許的 value 範圍從 0 至 64。value 的預設值為 0,伺服器會選擇平行處理原則的最大程度。這是預設值且為建議的設定。當 value 等於 0 時,伺服器使用的最大值為 64。MAX_DOP 會以下列方式處理:只要 MAXDOP 沒有超過工作負載群組 MAX_DOP,就會接受當做查詢提示的 MAXDOP。
當做查詢提示的 MAXDOP 一定會覆寫 sp_configure 'max degree of parallelism'。
工作負載群組 MAX_DOP 會覆寫 sp_configure 'max degree of parallelism'。
如果查詢在編譯時間被標示為序列 (MAX_DOP = 1 ),不管工作負載群組或 sp_configure 設定為何,都無法在執行階段將該查詢變更回平行。
DOP 經過設定後,在授與記憶體不足的壓力下,僅能將其降低。在授與記憶體查詢中等候時,看不到工作負載群組的重新組態。
GROUP_MAX_REQUESTS =value
指定在工作負載群組中執行時所允許的最大同時要求數。value 必須為 0 或正整數。value 的預設值 0 允許無限制的要求。USING { pool_name | "default" }
將工作負載群組與 pool_name 所識別的使用者定義資源集區產生關聯,這會導致將工作負載群組放入資源集區中。如果未提供 pool_name 或未使用 USING 引數,工作負載群組會放入預先定義的資源管理員預設集區。搭配 ALTER WORKLOAD GROUP 使用時,"default" 選項必須加上引號 ("") 或方括號 ([]) 才能避免與系統保留字 DEFAULT 產生衝突。如需詳細資訊,請參閱<分隔識別碼 (Database Engine)>。
[!附註]
"default" 選項會區分大小寫。
備註
在預設群組中允許使用 ALTER WORKLOAD GROUP。
工作負載群組組態的變更在執行 ALTER RESOURCE GOVERNOR RECONFIGURE 前不會生效。
當您要執行 DDL 陳述式時,建議您先熟悉資源管理員的狀態。如需詳細資訊,請參閱<資源管理員的狀態>。
REQUEST_MEMORY_GRANT_PERCENT:在 SQL Server 2005 中,允許建立索引即可使用比一開始授與之記憶體更多的工作空間記憶體來改善效能。在 SQL Server 2008 中,資源管理員支援這種特殊的處理。不過,初始授與和任何額外的記憶體授與受到資源集區和工作負載群組設定的限制。
資料分割資料表上的索引建立
非對齊式資料分割資料表上之索引建立所耗用的記憶體,與相關的資料分割數目成正比。如果所需的總記憶體超出資源管理員工作負載群組設定所設的每個查詢限制 (REQUEST_MAX_MEMORY_GRANT_PERCENT),這個索引建立動作就可能無法執行。由於 "default" 工作負載群組允許查詢超過每個查詢限制,而且具有 SQL Server 2005 相容性啟動所需的記憶體下限,因此使用者或許能夠在 "default" 工作負載群組中執行相同的索引建立動作,但前提是 "default" 資源集區有設定足夠的總記憶體來執行這類查詢。
權限
需要 CONTROL SERVER 權限。
範例
下列範例顯示如何將預設群組中的要求重要性從 MEDIUM 變更為 LOW。
ALTER WORKLOAD GROUP "default"
WITH (IMPORTANCE = LOW)
GO
ALTER RESOURCE GOVERNOR RECONFIGURE
GO
下列範例顯示如何將工作負載群組從所屬集區移到預設集區。
ALTER WORKLOAD GROUP adHoc
USING [default];
GO
ALTER RESOURCE GOVERNOR RECONFIGURE
GO
請參閱
參考
概念
變更記錄
更新的內容 |
---|
在 REQUEST_MAX_MEMORY_GRANT_PERCENT 引數描述中加入「請注意下列事項」的資訊。 |