sys.dm_os_tasks (Transact-SQL)
適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體Azure Synapse AnalyticsAnalytics Platform System (PDW)
針對 SQL Server 實例中作用中的每個工作,各傳回一個資料列。 工作是 SQL Server 中執行的基本單位。 工作的範例包括查詢、登入、登出和系統工作,例如准刪除清除活動、檢查點活動、記錄寫入器、平行重做活動。 如需工作的詳細資訊,請參閱 執行緒和工作架構指南 。
注意
若要從 Azure Synapse Analytics 或 Analytics Platform System (PDW) 呼叫此專案,請使用名稱 sys.dm_pdw_nodes_os_tasks 。 Azure Synapse Analytics 的無伺服器 SQL 集區不支援此語法。
資料行名稱 | 資料類型 | 描述 |
---|---|---|
task_address | Varbinary(8) | 物件的記憶體位址。 |
task_state | nvarchar(60) | 工作的狀態。 這個權限可以是下列其中一項: PENDING:等候背景工作執行緒。 RUNNABLE:Runnable,但正在等候接收量子。 RUNNING:目前在排程器上執行。 SUSPENDED:具有背景工作角色,但正在等候事件。 完成:已完成。 SPINLOOP:卡在微調鎖定中。 |
coNtext_switches_count | int | 此工作已完成的排程器內容切換數目。 |
pending_io_count | int | 此工作所執行的實體 I/O 數目。 |
pending_io_byte_count | bigint | 此工作所執行的 I/O 位元組總數。 |
pending_io_byte_average | int | 此工作所執行之 I/O 的平均位元組計數。 |
scheduler_id | int | 父排程器的識別碼。 這是此工作的排程器資訊控制碼。 如需詳細資訊,請參閱 sys.dm_os_schedulers (Transact-SQL) 。 |
session_id | smallint | 與工作相關聯的會話識別碼。 |
exec_coNtext_id | int | 與工作相關聯的執行內容識別碼。 |
request_id | int | 工作的要求識別碼。 如需詳細資訊,請參閱 sys.dm_exec_requests (Transact-SQL)。 |
worker_address | Varbinary(8) | 執行工作之背景工作的記憶體位址。 Null = 工作正在等候背景工作能夠執行,或工作剛完成執行。 如需詳細資訊,請參閱 sys.dm_os_workers (Transact-SQL) 。 |
host_address | Varbinary(8) | 主機的記憶體位址。 0 = 裝載不是用來建立工作。 這有助於識別用來建立這項工作的主機。 如需詳細資訊,請參閱 sys.dm_os_hosts (Transact-SQL) 。 |
parent_task_address | Varbinary(8) | 做為 物件父代之工作的記憶體位址。 |
pdw_node_id | int | 適用於:Azure Synapse Analytics、Analytics Platform System (PDW) 此散發節點的識別碼。 |
權限
在 SQL Server 和 SQL 受控執行個體上,需要 VIEW SERVER STATE
權限。
在SQL 資料庫基本、S0 和 S1 服務目標上,以及彈性集 區中的 資料庫, 需要伺服器管理員 帳戶、 Microsoft Entra 系統管理員 帳戶或伺服器角色 的成員 ##MS_ServerStateReader##
資格。 在所有其他 SQL Database 服務目標上,需要資料庫的 VIEW DATABASE STATE
權限或 ##MS_ServerStateReader##
伺服器角色的成員資格。
SQL Server 2022 及更新版本的權限
需要伺服器上的 VIEW SERVER PERFORMANCE STATE 權限。
範例
A. 監視平行要求
針對平行執行的要求,您會看到相同組合的多個資料列( < session_id > 、 < request_id)。 > 使用下列查詢來尋找 所有使用中要求的 [設定最大平行處理原則伺服器組態選項 ]。
注意
會話 內request_id 是唯一的。
SELECT
task_address,
task_state,
context_switches_count,
pending_io_count,
pending_io_byte_count,
pending_io_byte_average,
scheduler_id,
session_id,
exec_context_id,
request_id,
worker_address,
host_address
FROM sys.dm_os_tasks
ORDER BY session_id, request_id;
B. 將會話識別碼與 Windows 執行緒產生關聯
您可以使用下列查詢,將會話識別碼值與 Windows 執行緒識別碼產生關聯。 然後,您可以在 Windows 效能監視器中監視執行緒的效能。 下列查詢不會傳回睡眠中的會話資訊。
SELECT STasks.session_id, SThreads.os_thread_id
FROM sys.dm_os_tasks AS STasks
INNER JOIN sys.dm_os_threads AS SThreads
ON STasks.worker_address = SThreads.worker_address
WHERE STasks.session_id IS NOT NULL
ORDER BY STasks.session_id;
GO
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應