Share via


資源管理員 DDL 和系統檢視

您可以針對資源管理員的所有層面使用資源管理員的 DDL 命令、目錄檢視和動態管理檢視。除了資源管理員特有的新檢視以外,現有的系統檢視已經修改成包含資源管理員的相關資訊。此主題將摘要說明下列陳述式和檢視:

  • DDL 命令,包括工作負載群組、資源集區和資源管理員的命令。

  • 資源管理員系統檢視,包括目錄和動態管理檢視。

  • 更新為支援資源管理員的 SQL Server 系統檢視。

  • SQL Server 事件類別更新以及支援資源管理員的全新事件類別。

DDL 陳述式

資源管理員會提供七個 DDL 命令,可讓您用來設定資源管理員工作階段的所有層面。其中包括適用於工作負載群組和資源集區的 CREATE、ALTER 和 DROP 命令。此外,還有可套用組態變更的 ALTER RESOURCE GOVERNOR RECONFIGURE 陳述式。

資源管理員 DDL 命令的重要注意事項如下:

  • CREATE、ALTER 和 DROP 陳述式會針對儲存的中繼資料運作,而且它們都是交易式。不過,完成這些陳述式並無法讓變更生效。您必須執行 ALTER RESOURCE GOVERNOR RECONFIGURE 陳述式來套用變更。

  • 上述陳述式可以成為交易的一部分,以便防止多位使用者同時針對相同的組態進行修改。您可以使用 BEGIN TRANSACTION 和 COMMIT TRANSACTION 搭配這些陳述式,完成這項作業。交易所保存的任何鎖定都會顯示在 sys.dm_tran_locks 中,而且必要時,您可以停止交易。

    [!附註]

    雖然非必要,不過我們強烈建議您在使用資源管理員 DDL 陳述式時,使用交易式語法。但是,ALTER RESOURCE GOVERNOR DISABLE、ALTER RESOURCE GOVERNOR RECONFIGURE 和 ALTER RESOURCE GOVERNOR RESET STATISTICS 無法成為使用者交易的一部分。

  • ALTER…RECONFIGURE 陳述式會將中繼資料載入記憶體而且可能會失敗。不過,您無法回復此陳述式。如果此陳述式失敗,對中繼資料所做的變更就不會複製到記憶體。如果此陳述式成功,變更就會生效。ALTER RECONFIGURE 並非交易式,而且您無法回復變更。

資源集區的命令

您可以使用下表所述的命令來設定資源集區。

DDL 陳述式

描述

CREATE RESOURCE POOL

建立資源集區。

ALTER RESOURCE POOL

變更資源集區的組態。這個陳述式會將變更寫入儲存的組態中繼資料。執行此陳述式之後,您必須執行 ALTER RESOURCE GOVERNOR 陳述式,將中繼資料資訊寫入記憶體中組態。

DROP RESOURCE POOL

卸除資源集區。

資源管理員會提供四個設定資源集區的參數。其中包括:

  • CPU 使用量的最小和最大百分比。

  • 記憶體使用量的最小和最大百分比。

根據您對資源集區組態所做的變更,可能會存在轉換期限,而且在轉換期間,會產生處理作用中或等候中要求的已知行為。如需詳細資訊,請參閱<資源管理員的狀態>。

工作負載群組的命令

您可以使用下表所述的命令來設定工作負載群組。

DDL 命令

描述

CREATE WORKLOAD GROUP

建立工作負載群組並將它與資源集區產生關聯。

ALTER WORKLOAD GROUP

變更工作負載群組的組態。這個陳述式會將變更寫入儲存的組態中繼資料。執行此陳述式之後,您必須執行 ALTER RESOURCE GOVERNOR 陳述式,將中繼資料資訊寫入記憶體中組態。

DROP WORKLOAD GROUP

卸除工作負載群組。

資源管理員會提供下列六個設定工作負載群組的參數:

  • 要求的最大記憶體數量。

  • 要用於要求的最大 CPU 百分比。

  • 要求的資源逾時。

  • 要求的相對重要性。

  • 工作負載群組的最大要求數目。

  • 工作負載群組將位於其中的資源集區。

根據您對工作負載群組組態所做的變更,在套用變更時,會產生處理作用中或等候中要求的已知行為。如需詳細資訊,請參閱<資源管理員的狀態>。

資源管理員的命令

您可以使用下表所述的命令來設定資源管理員。

DDL 命令

描述

ALTER RESOURCE GOVERNOR

套用使用 ALTER 命令指定的組態變更、啟用或停用 RESOURCE GOVERNOR、註冊分類函數,或重設統計資料。

ALTER RESOURCE GOVERNOR 陳述式可用來執行下列動作:

  • 發出 ALTER WORKLOAD GROUP 或 ALTER RESOURCE POOL 陳述式時,套用指定的組態變更。

  • 啟用或停用資源管理員。這也會用於套用組態變更。

  • 註冊要求分類的函數。

  • 針對所有工作負載群組與資源集區重設統計資料。

根據您對資源管理員組態所做的變更,在套用變更時,會產生處理作用中或等候中要求的已知行為。如需詳細資訊,請參閱<資源管理員的狀態>。

資源管理員的檢視

下列目錄和動態管理檢視是資源管理員特有的項目。

目錄檢視

下表將描述資源管理員的目錄檢視。

名稱

描述

sys.resource_governor_configuration

傳回儲存的資源管理員狀態。

sys.resource_governor_resource_pools

傳回儲存的資源集區組態。檢視的每個資料列都會決定集區的組態。

sys.resource_governor_workload_groups

傳回儲存的工作負載群組組態。

動態管理檢視

下表將描述資源管理員的動態管理檢視。

名稱

描述

sys.dm_resource_governor_workload_groups

傳回工作負載群組統計資料以及工作負載群組的目前記憶體中組態。

sys.dm_resource_governor_resource_pools

傳回目前資源集區狀態的相關資訊、資源集區的目前組態和資源集區統計資料。

sys.dm_resource_governor_configuration

傳回資料列,其中包含資源管理員的目前記憶體中組態狀態。

SQL Server 的檢視

許多 SQL Server 系統檢視已經更新而且會提供資源管理員的相關資訊。

動態管理檢視

下表將描述 SQL Server 動態管理檢視。

名稱

描述

sys.dm_exec_query_memory_grants

傳回已取得記憶體授權或是仍然需要記憶體授權來執行的查詢。不需要等候記憶體授權的查詢將不會出現在此檢視中。下列資料行是針對資源管理員加入的:

  • group_id

  • pool_id

  • is_small

  • ideal_memory_kb

sys.dm_exec_query_resource_semaphores

傳回目前查詢資源信號狀態的相關資訊。sys.dm_exec_query_resource_semaphores 會提供一般查詢執行的記憶體狀態,而且可讓您判斷系統是否可以存取足夠的記憶體。

下列資料行是針對資源管理員加入的:

  • pool_id

sys.dm_exec_sessions

針對 SQL Server 上每個已驗證的工作階段,各傳回一個資料列。

下列資料行是針對資源管理員加入的:

  • group_id

sys.dm_exec_requests

傳回在 SQL Server 內部執行之每個要求的相關資訊。

下列資料行是針對資源管理員加入的:

  • group_id

sys.dm_exec_cached_plans

針對 SQL Server 快取的每個查詢計畫傳回一個資料列,加快查詢執行的速度。

下列資料行是針對資源管理員加入的:

  • pool_id

sys.dm_os_memory_brokers

SQL Server 內部的配置會使用 SQL Server 記憶體管理員。

下列資料行是針對資源管理員加入的:

  • pool_id

  • allocations_kb_per_sec

  • predicated_allocations_kb

  • overall_limit_kb

sys.dm_os_wait_stats

傳回執行中之執行緒的等候相關資訊。您可以使用這份檢視來診斷 SQL Server 的效能問題,以及特定查詢和批次的效能問題。

SQL Server 事件類別參考

許多 SQL Server 事件類別已經更新,而且已經加入支援資源管理員的全新事件類別。

名稱

描述

CPU Threshold Exceeded 事件類別

這個事件類別會指出資源管理員偵測到某個查詢已經超過針對 REQUEST_MAX_CPU_TIME_SEC 所指定的 CPU 臨界值。

PreConnect:Starting 事件類別

這個事件類別會指出 LOGON 觸發程序或資源管理員分類函數開始執行。

PreConnect:Completed 事件類別

這個事件類別會指出 LOGON 觸發程序或資源管理員分類函數執行完成。