sys.dm_os_tasks
更新日期: 2006 年 4 月 14 日
为 SQL Server 实例中的每个活动任务返回一行。
列名 | 数据类型 | 说明 |
---|---|---|
task_address |
varbinary(8) |
对象的内存地址。 |
task_state |
nvarchar(60) |
任务的状态。可以是下列选项之一: PENDING:正在等待工作线程。 RUNNABLE:可运行,但正在等待接收量程。 RUNNING:当前正在计划程序中运行。 SUSPENDED:具有工作线程,但正在等待事件。 DONE:已完成。 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 |
父计划程序的 ID。这是此任务的计划程序信息的句柄。有关详细信息,请参阅 sys.dm_os_schedulers。 |
session_id |
smallint |
与任务关联的会话 ID。 |
exec_context_id |
int |
与任务关联的执行上下文 ID。 |
request_id |
int |
此任务的请求的 ID。有关详细信息,请参阅 sys.dm_exec_requests。 |
worker_address |
varbinary(8) |
运行任务的工作线程的内存地址。 NULL = 任务正在等待工作线程以便运行,或者任务刚刚完成运行。 有关详细信息,请参阅 sys.dm_os_workers。 |
host_address |
varbinary(8) |
主机的内存地址。 0 = 不使用宿主创建任务。这有助于标识用于创建此任务的主机。 有关详细信息,请参阅 sys.dm_os_hosts。 |
权限
需要对服务器具有 VIEW SERVER 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. 使会话 ID 与 Windows 线程关联
可以使用以下查询将会话 ID 值与 Windows 线程 ID 进行关联。然后可以通过 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
请参阅
参考
动态管理视图和函数
与 SQL Server 操作系统相关的动态管理视图
其他资源
帮助和信息
更改历史记录
版本 | 历史记录 |
---|---|
2006 年 4 月 14 日 |
|
2005 年 12 月 5 日 |
|