sys.dm_os_threads

更新日期: 2005 年 12 月 5 日

返回正在 SQL Server 进程下运行的全部 SQL Server 操作系统线程的列表。

列名 数据类型 说明

thread_address

varbinary(8)

线程的内存地址(主键)。

started_by_sqlservr

bit

指示线程发起方。

1 = SQL Server 已启动线程。

0 = 线程由其他组件启动,例如 SQL Server 中的扩展存储过程。

os_thread_id

int

由操作系统分配的线程 ID。

status

int

内部状态标志。

instruction_address

varbinary(8)

当前正在执行的指令的地址。

creation_time

datetime

线程的创建时间。

kernel_time

bigint

该线程占用的内核时间。

usermode_time

bigint

该线程占用的用户时间。

stack_base_address

varbinary(8)

该线程最高堆栈地址在内存中的位置。

stack_end_address

varbinary(8)

该线程最低堆栈地址在内存中的位置。

stack_bytes_committed

int

堆栈中提交的字节数。

stack_bytes_used

int

线程目前正使用的字节数。

affinity

bigint

假定该进程正在其上运行的 CPU 掩码。这取决于 sp_configureaffinity mask 配置选项中的值。

locale

int

线程的被缓存的区域设置 LCID。

priority

int

线程的优先级值。

token

varbinary(8)

线程的缓存模拟令牌句柄。

is_impersonating

int

指示该进程是否使用 Win32 模拟。

1 = 该线程使用与进程默认的安全凭据不同的安全凭据。它表明线程正在模拟创建该进程的实体以外的其他实体。

is_waiting_on_loader_lock

int

有关线程是否正在等待加载程序锁的操作系统状态。

fiber_data

varbinary(8)

当前正在线程中运行的 Win32 纤程。只有在 SQL Server 配置为用于轻型池时,这才适用。

thread_handle

varbinary(8)

仅供内部使用。

event_handle

varbinary(8)

仅供内部使用。

scheduler_address

varbinary(8)

与该线程关联的计划程序的内存地址。有关详细信息,请参阅 sys.dm_os_schedulers

worker_address

varbinary(8)

绑定到该线程的工作线程的内存地址。有关详细信息,请参阅 sys.dm_os_workers

fiber_context_address

varbinary(8)

内部纤程上下文地址。只有在 SQL Server 配置为用于轻型池时,这才适用。

self_address

varbinary(8)

内部一致性指针。

权限

需要对服务器具有 VIEW SERVER STATE 权限。

示例

SQL Server 在启动时将启动线程,然后将工作与这些线程进行关联。但是,外部组件(例如扩展存储过程)可在 SQL Server 进程下启动线程。SQL Server 不能控制这些线程。sys.dm_os_threads 可提供有关占用 SQL Server 进程中资源的恶意线程的信息。

下面的查询用于查找正在运行非 SQL Server 启动的线程的工作以及执行的时间。

ms187818.note(zh-cn,SQL.90).gif注意:
为清晰起见,下面的查询在 SELECT 语句中使用星号 (*)。应避免使用星号 (*),尤其是对目录视图、动态管理视图和系统表值函数。Microsoft SQL Server 将来的升级和版本可能添加列,并更改这些视图和函数中的列的顺序。这些更改可能会中断需要特定顺序和列数的应用程序。
SELECT *
  FROM sys.dm_os_threads
  WHERE started_by_sqlservr = 0;

请参阅

参考

动态管理视图和函数
sys.dm_os_workers
与 SQL Server 操作系统相关的动态管理视图

其他资源

内存体系结构

帮助和信息

获取 SQL Server 2005 帮助

更改历史记录

版本

历史记录

2005 年 12 月 5 日

主题

定义

**新增内容:**添加了一个示例。