现在的位置: 首页 > 综合 > 正文

在 SQL Server 2000 和 SQL Server 2005 master.dbo.sysprocesses 表中的此 waittype 和 lastwaittype 列的说明

2018年01月22日 ⁄ 综合 ⁄ 共 7261字 ⁄ 字号 评论关闭

http://support.microsoft.com/kb/822101/zh-cn

在 SQL Server 2000 和 SQL Server 2005 master.dbo.sysprocesses 表中的此 waittype 和 lastwaittype 列的说明

本页


概要

在 Microsoft SQL Server 2000 和 SQL Server 2005 master.dbo.sysprocesses 表是一个系统表,包含...

在 Microsoft SQL Server 2000 和 SQL Server 2005 master.dbo.sysprocesses 表是一个系统表,包含有关活动服务器进程 ID (SPID) SQL Server 上运行的信息。

如果您使用 SQL Server 2005 您也可以使用 sys.sysprocesses 兼容性视图访问此表。

waittype 列、 lastwaittype 列、 waittime 列和 master.dbo.sysprocesses 系统表中的 waitresource 列请提供进程正在等待的资源的信息。

本文列出了可能的 lastwaittype 值、 关联的 waittype 的值和及其含义的简短说明。

更多信息

存储在您的实例的 SQL Server master 数据库中的 master.dbo.sysprocesses 系统表包含以下列,帮助系统管理员监视资源争用情...

存储在您的实例的 SQL Server master 数据库中的 master.dbo.sysprocesses 系统表包含以下列,帮助系统管理员监视资源争用情况和阻塞问题进程:

  • waittype : The waittype 字段是保留的内部二进制列。 waittype 字段中的值指示等待连接的资源的类型。
  • lastwaittype : The lastwaittype 字段是 waittype 字段的字符串表示形式。 lastwaittype 域指示最后一 waittype 或 SPID 的当前 waittype。 如果 waittype 列的 SPID 的值为 0x0000,SPID 正在不当前等待任何资源。 在这种情况下 lastwaittype 列指示 SPID 遇到的最后一 waittype。 但是,如果的 SPID, waittype 列的值为非零, lastwaittype 列和的 SPID waittype 列中值相等用。 这些值指示当前的等待状态的 SPID。

    请注意 UMSTHREAD waittype 是此规则的例外。 请参阅 UMSTHREAD 其他详细信息"其他 waittype"部分中的说明。

  • waittime : The waittime 列提供在许多与当前 waittype 正在等待 SPID 的毫秒。
  • waitresource : The waitresource 列提供有关 SPID 正在等待的特定资源的详细信息。

本文中后面的部分描述的 waittype SQL Server 支持的并且,经常 master.dbo.sysprocesses 系统表中记录一些。

Lock waittype


下表列出了在 SQL Server 2000 和 SQL Server 2005 master.dbo.sysprocesses 系统表中的锁定 waittype。

收起该表格展开该表格
lastwaittype waittype 说明
LCK_M_SCH_S 0 x 01 架构稳定性
LCK_M_SCH_M 0 x 02 架构修改
LCK_M_S 0 x 03 共享
LCK_M_U 0x04 更新
LCK_M_X 0 x 05 独占
LCK_M_IS 0 x 06 意向共享
LCK_M_IU 0 x 07 意向更新
LCK_M_IX 0 x 08 意向-专用
LCK_M_SIU 共享意向更新
LCK_M_SIX 0x0a 共享 Intent 以独占方式
LCK_M_UIX 0x0b 更新 Intent 以独占方式
LCK_M_BU 0x0c 批量更新
LCK_M_RS_S 0x0d 范围共享共享
LCK_M_RS_U 0x0e 范围共享更新
LCK_M_RI_NL 0x0F 区域插入 NULL
LCK_M_RI_S 0 x 10 区域插入共享
LCK_M_RI_U 0x11 区域插入更新
LCK_M_RI_X 出现 区域插入以独占方式
LCK_M_RX_S 0 x 13 范围专用共享
LCK_M_RX_U 0 x 14 区域包含更新
LCK_M_RX_X 0x15 区域包含专用

有关 SQL Server 2000 和 SQL Server 2005 中支持的锁定类型,请参阅 SQL Server 联机丛书中下面的主题:

  • 了解锁定 SQL Server
  • 锁定兼容性

此外,如果 Lock waittype 正在等待的 SPID,且 master.dbo.sysprocesses 系统表中记录 waittime 列中的对应值为非常高,则必须诊断阻塞问题 SQL Server 的实例。

有关详细信息,单击下面的文章编号,以查看 Microsoft 知识库中的相应:

224453  (http://support.microsoft.com/kb/224453/ ) 了解和解决 SQL Server 7.0 或 2000 阻塞问题

闩锁 waittype


闩锁都是一个短期的轻量的同步对象。 下面列出了不同类型的闩锁:

  • 非缓冲非 BUF 闩锁 : The 非缓冲区闩锁提供内存中的数据结构的同步服务或提供并发敏感的代码行的 re-entrancy 保护。 这些闩锁可用于各种操作,但它们未使用来同步对缓冲区页的访问。
  • 缓冲区 (BUF) 闩锁 : The 缓冲区闩锁用于同步访问 BUF 结构和其关联的数据库页面。 典型的缓冲区闭锁期间需要在缓冲区页上的序列化的操作发生 (页拆分期间或在示例一个新网页的分配的过程中)。 这些闩锁不保留期间交易记录。 这些都由 PAGELATCH waittype 指明 master.dbo.sysprocesses 表中。

    有关可能的原因之一 BUF 闩锁争用的详细信息,单击下面的文章编号,以查看 Microsoft 知识库中的文章:

    328551  (http://support.microsoft.com/kb/328551/ ) FIX: tempdb 数据库的并发性增强
  • IO 闩锁 : The IO 闩锁是时缓冲区和关联的数据页或索引页的 IO 的过程中使用的 BUF 闩锁的子集操作。 PAGEIOLATCH waittype 用于磁盘内存传输,为这些 waittype 的重要 waittime 建议磁盘 I / O 子系统问题。

下表列出了您可能注意到在 SQL Server 2000 和 SQL Server 2005 master.dbo.sysprocesses 系统表中的在不同的闩锁 waittype。

收起该表格展开该表格
lastwaittype waittype 说明
LATCH_NL 0x400 空的闩锁
LATCH_KP 0x401 保留闩锁
LATCH_SH 0x402 共享的闩锁
LATCH_UP 0x403 更新闩锁
LATCH_EX 0x404 排他闩锁
LATCH_DT 0x405 销毁闩锁
PAGELATCH_NL 0x410 空缓冲区页闩锁
PAGELATCH_KP 0x411 保留缓冲区页闩锁
PAGELATCH_SH 0x412 共享缓冲区页闩锁
PAGELATCH_UP 0x413 更新缓冲区页闩锁
PAGELATCH_EX 0x414 专用缓冲区页闩锁
PAGELATCH_DT 0x415 销毁缓冲区页闩锁
PAGEIOLATCH_NL 0x420 空缓冲区 I / O 页闩锁
PAGEIOLATCH_KP 0x421 保留缓冲区 I / O 页闩锁
PAGEIOLATCH_SH 0x422 共享缓冲区 I / O 页闩锁
PAGEIOLATCH_UP 0x423 更新缓冲区 I / O 页闩锁
PAGEIOLATCH_EX 0x424 专用缓冲区页 I / O 闩锁
PAGEIOLATCH_DT 0x425 销毁缓冲区 I / O 页闩锁

开始 SQL Server 2000 SP 4,waitresource 列最常见的非缓冲区闩锁,Latch_XX 闩锁由填充使用下表中的值。 SQL Server 2000 SP 4 之前, 无法确定非缓冲区闩锁用项不如一个用户转储之类的更多侵害性诊断的原因。 waittype 或在 waitresource 查看通过使用在 waittime。 在 waittime 指定单位为毫秒时间等待线程。

收起该表格展开该表格
waitresource 说明 疑难解答
FCB FGCB_ALLOC 这些 Latch_XX 闩锁保留页被分配从一个的文件时是否具有统一或混合程度。 分配操作如增长和收缩文件,重命名或删除一个的文件或添加或删除文件过程中还保留该闩锁。 确定是收缩还是增长任何文件。 开始 SQL Server 2000 SP 4 自动增长选项会记录该错误日志中如果其时间超过 30 秒。 理想情况下,自动增长选项应能用作一个的备份,并且应使用 prudent 的容量规划若要避免在运行时损失的增长文件。 也可以为固定大小更改 10%默认自动增长值。 我们并不建议您在生产中使用该自动收缩。 此文件组中的文件可能会也发出分配的多个请求。 您可以添加更多的文件的文件组中。
TRACE TRACE_CONTROLLER TRACE_IO_SYNC 这些 Latch_XX 闩锁保留同步事件探查器跟踪操作中进行。 Sychronization 操作包括启动、 停止、 设置跟踪状态和同步读取和写入器。 确定正在运行的任何事件探查器跟踪。 尽量避免运行多个事件探查器跟踪。 启动事件探查器跟踪,跟踪被登录应用程序事件日志。 此外,可以在 SQL 查询分析器中使用以下查询以查看活动的跟踪。

SELECT * FROM 
::fn_trace_getinfo(NULL)

:: fn_trace_getinfo(NULL)

PARALLEL_PAGE_SUPPLIER 这些 Latch_XX 闩锁用于同步为并行查询的页面的检索。 此闩锁指示查询并行运行的并且可能是典型。 如果 waittime 列是一个较大的值,并且查询欠佳,请调整查询。
IDES IDES 闩锁 waitresource 用于 PFS 页扫描以查找可用空间时,以及 PFS 页更新以反映分配和释放的页数时。 单个页被分配给现有对象时,还用于此闩锁。 确定是否有问题在对象上有聚集的索引。

其他 waittype


下表列出了您可能注意到在 SQL Server 2000 和 SQL Server 2005 master.dbo.sysprocesses 系统表中,其他 waittype。

收起该表格展开该表格
lastwaittype waittype 说明
睡眠状态 0 x 20 此 waittype 表示 SPID 正在等待指定的时间是后台线程处理该 lazywrites、 检查点或服务器端事件探查器跟踪事件的一个常见状态。
IO_COMPLETION 0x21 此 waittype 表示 SPID 正在等待将发送到完成的 I / O 请求。 如果您的 SPID sysprocesses 系统表中发现此 waittype,您必须分析该查询计划,对应于 SPID 使用性能监视器计数器、 探查器跟踪、 在 fn_virtualfilestats 系统表值函数和 SHOWPLAN 选项确定磁盘瓶颈。 可以通过添加额外的 I / O 带宽,或在其他驱动器平衡 I / O 降低此 waittype。 您还可以通过使用索引减少 I / O,查找错误的查询计划,并查找内存压力。
ASYNC_IO_COMPLETION 0x22 此 waittype 表示 SPID 正在等待完成异步的 I / O 请求。 像在 IO_COMPLETION waittype 此 waittype 还指示 I / O 瓶颈。 您可能会在长时间运行 I / O 密集型操作过程中,如 BACKUP、 CREATE DATABASE,ALTER DATABASE 或数据库自动增长,SPID 看到此 waittype。 此 waittype 也可能表明磁盘瓶颈。
RESOURCE_SEMAPHORE 0 x 40 此 waittype 表示 SPID 正在等待资源。 此处,在 SPID 通常等待获取排序或哈希操作查询执行过程中的内存。 此 waittype 也可能表明内存压力位于缓冲池的可见的一部分。
DTC 0x41 此 waittype 表示 SPID 等待 Microsoft 分布式事务处理协调器 (MS DTC) 服务。
OLEDB 0 x 42 此 waittype 表示的 SPID 了函数调用 OLE DB 提供程序正在等待使用函数来返回所需的数据。 此 waittype 还可能在 SPID 正在等待远程过程调用,或链接服务器查询以返回所需的数据。 SPID 可能还会等待 BULK INSERT 命令或全文搜索查询返回所需的数据。

使用 OLEDB waittype 表示几个不同等待状态,包括: 链接服务器查询、 全文搜索查询 BULK INSERT 命令,客户端事件探查器跟踪、 与 sysprocesses 表、 日志读取器和 DBCC CHECKDB 的虚拟表的少。

RESOURCE_QUEUE 0 x 44 这是一个普通的空闲 ” 状态 SQL Server 中的后台线程。
ASYNC_DISKPOOL_LOCK 0x45 在长时间运行 I / O 密集型操作过程中创建、 扩展,或删除数据库文件可能会发现此 waittype。
UMSTHREAD 0 此 waittype 指示从一个客户端应用程序接收批处理,但有可用于处理请求没有工作线程。 如果您持续看到 0x0046 waittype 对于多个 SPID,没有明显瓶颈其他地方使用所有可用的工作线程的系统中。 请注意 waittime 列是始终在 UMSTHREAD waittype 为 0, lastwaittype 列可能会错误地显示而不是 UMSTHREAD 的不同 waittype 的名称"。
WRITELOG 0x81 此 waittype 表示 SPID 正在等待完成的事务日志 I / O 请求。 此 waittype 也可能表明可能磁盘瓶颈。
PSS_CHILD
EXCHANGE
CXPACKET
0x101
0x200
0x208
以下 waittype 是所有参与并行查询执行。 以下 waittype 表示 SPID 的等待完成或启动一个并行进程。
PAGESUPP 0x209 此 waittype 跟踪导致因中分发并行的扫描中的多个调用方的行所需的序列化的等待时间。
CURSOR 0x20C 此 waittype 表示的 SPID 参与线程同步而其使用异步光标。 在 sp _ configure ‘ cursorthreshold ’ 配置设置可能会确定时游标以异步方式创建。
DBTABLE 0x202 此 waittype 表示一个线程正在等待执行检查点,另一个线程是已检查点数据库。
EC 0x203 此 waittype 表示 SPID 正在等待对执行上下文的访问。
TEMPOBJ 0x204 此 waittype 表示 SPID 正在等待删除仍在使用一个临时对象。
XACTLOCKINFO 0x205 此 waittype 表示 SPID 正在等待的锁定列表执行维护。
LOGMGR 0x206 此 waittype 用于 SPID 尝试关闭数据库时,并等待挂起的事务日志 I / O 请求完成。
CMEMTHREAD 0x207 此 waittype 表示 SPID 正在等待对线程安全内存对象的访问。 序列化确保用户时分配或释放内存从内存对象尝试执行相同任务的任何其他 SPID 必须等到,和 CMEMTHREAD waittype 设置了在 SPID 正在等待时。

您可能注意到在许多情况下此 waittype。 但是,特别查询计划在快速插入到许多不同的连接在过程缓存到 SQL Server 的实例时,经常将记录此 waittype。 可以通过如显式,以便重复使用查询参数化查询或使用存储过程在适当限制必须能插入或从该过程缓存中删除的数据来解决瓶颈问题。

SHUTDOWN 0x20A 此 waittype 表示由该的 SPID 颁发 SHUTDOWN 命令并 SPID 等待完成的活动查询。
在 WAITFOR 0x20B 此 waittype 表示 SPID 正在休眠因在 WAITFOR DELAY Transact-SQL 语句。
NETWORKIO 0 x 800 此 waittype 表示 SPID 正在等待客户端应用程序 SPID 更多的结果发送到客户端应用程序之前获取数据。

参考

有关详细信息,单击下面的文章编号,以查看 Microsoft 知识库中的相应: 244455  (http://support.microsoft.com/kb...

有关详细信息,单击下面的文章编号,以查看 Microsoft 知识库中的相应:

244455  (http://support.microsoft.com/kb/244455/ ) SQL Server 7.0 的 sysprocesses 的 waittype 和 lastwaittype 的域的定义

有关在 SQL Server 2000 master.dbo.sysprocesses 系统表请访问下面的 Microsoft Web 站点:

http://msdn2.microsoft.com/en-us/library/aa260456(SQL.80).aspx (http://msdn2.microsoft.com/en-us/library/aa260456(SQL.80).aspx)

有关在 SQL Server 2000 闩锁,请访问下面的 Microsoft Web 站点:

http://msdn2.microsoft.com/en-us/library/aa224727(SQL.80).aspx (http://msdn2.microsoft.com/en-us/library/aa224727(SQL.80).aspx)

这篇文章中的信息适用于:
  • Microsoft SQL Server 2000 标准版
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL 2005 Server Workgroup
关键字: 
kbmt kbsystemdata kbfield kbdatabase kbinfo KB822101 KbMtzh

抱歉!评论已关闭.