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

文章翻译 文章翻译
文章编号: 822101 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

概要

在 Microsoft SQL Server 2000 及 SQL Server 2005 master.dbo.sysprocesses 表是包含有关活动的服务器进程 id (spid) SQL Server 上运行的信息的系统表。

如果使用的 SQL Server 2005 您还可以通过使用 sys.sysprocesses 兼容性视图中访问此表。

waittype 列、 lastwaittype 列、 waittime 列和 waitresourcemaster.dbo.sysprocesses 系统表中的提供了有关进程等待的资源的信息。

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

更多信息

master.dbo.sysprocesses 系统表存储在您的实例的 SQL Server master 数据库中的包含帮助系统管理员监视资源争用情况和阻塞问题的进程以下列:
  • waittypewaittype 字段是一个保留的内部二进制列。waittype 字段中的值指示资源,等待该连接的类型。
  • lastwaittypelastwaittype 字段是 waittype 字段的字符串表示形式。lastwaittype 域指示上一次 waittype 或在当前的 SPID waittype。如果一个 SPID waittype 列的值为 0x0000,SPID 不当前在任何资源中等待。 在这种情况下 lastwaittype 列指示遇到了 SPID 在最后一个 waittype。但是,一个 SPID waittype 列的值为非零值,lastwaittype 列和 SPID waittype 列中的值相等。这些值表明当前等待状态的 SPID。

    注意UMSTHREAD waittype 是此规则的例外。请参阅 UMSTHREAD 其他 waittypes 其他详细信息部分中的说明。
  • waittimewaittime 该列提供的 SPID 有了与当前 waittype 正在等待的毫秒数。
  • waitresource: waitresource 该列提供了有关特定的资源,等待该 SPID 的更详细信息。
本文中后面的部分介绍一些 waittypes SQL Server 支持的但是,经常登录 master.dbo.sysprocesses 系统表。

LOCK waittypes

下表列出了在 LOCK waittypes master.dbo.sysprocesses 系统表中 SQL Server 2000 和 SQL Server 2005 中。
收起该表格展开该表格
LastwaittypeWaittype说明
LCK_M_SCH_S0x01架构稳定性
LCK_M_SCH_M0x02架构修改
LCK_M_S0x03共享
LCK_M_U0x04更新
LCK_M_X0x05排他
LCK_M_IS0x06意向-共享
LCK_M_IU0x07意向-更新
LCK_M_IX0x08意向-独占
LCK_M_SIU0x09共享意向更新
LCK_M_SIX0x0a共享-意向-独占
LCK_M_UIX0x0b更新-意向-独占
LCK_M_BU0x0c大容量更新
LCK_M_RS_S0x0d范围-共享-共享
LCK_M_RS_U0x0e范围-共享-更新
LCK_M_RI_NL0x0F范围-插入-空
LCK_M_RI_S0x10范围-插入-共享
LCK_M_RI_U0x11范围-插入-更新
LCK_M_RI_X0x12范围-插入-独占
LCK_M_RX_S0x13范围排它共享
LCK_M_RX_U0x14范围独占更新
LCK_M_RX_X0x15排它排它范围
有关支持的 SQL Server 2000 和 SQL Server 2005 锁定类型的详细信息,请参阅下列主题 SQL Server 联机丛书中:
  • 了解在 SQL Server 锁定
  • 锁定的兼容性
此外,如果 LOCK waittypes 正在等待一个 SPID,并将记录 master.dbo.sysprocesses 系统表中 waittime 列中对应的值是非常高您必须为您的实例的 SQL Server 诊断阻塞问题。

有关详细的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
224453了解和解决 SQL Server 7.0 或 2000年阻塞问题

闩锁 waittypes

闩锁是一个短期的轻量的同步对象。下面的列表描述了不同类型的闩锁:
  • 无缓冲区 (无 BUF) 闩锁: 的非缓冲区闩锁提供同步服务在内存中的数据结构,或提供并发敏感的代码行的 re-entrancy 保护。这些闩锁可用于各种事情,但它们不用于同步对缓冲区页的访问。
  • 缓冲区 (BUF) 闩锁: 该缓冲区闩锁用于同步对 BUF 访问结构和其相关联的数据库页。典型的缓冲区闭锁需要序列化一个缓冲区页上的操作期间发生 (在一个页拆分期间或在示例中的新页的分配过程中)。这些闩锁不会保留在事务的持续时间。这些是由 PAGELATCH waittypes master.dbo.sysprocesses 表所示。

    有关可能的原因之一 BUF 闩锁争用的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
    328551用于将 tempdb 数据库的 FIX: 并发增强功能
  • IO 闩锁: 的 IO 闩锁是 BUF 闩锁在缓冲区和相关联的数据页或索引页是一个 IO 的中间时使用子集操作。PAGEIOLATCH waittypes 用于磁盘到内存传送,并为这些 waittypes 的重大 waittime 建议磁盘 I/O 子系统问题。
下表列出了您可能会注意到在 SQL Server 2000 和 SQL Server 2005 master.dbo.sysprocesses 系统表中在不同的闩锁 waittypes。
收起该表格展开该表格
LastwaittypeWaittype说明
LATCH_NL0x400空闩锁
LATCH_KP0x401保留闩锁
LATCH_SH0x402共享闩锁
LATCH_UP0x403更新闩锁
LATCH_EX0x404排他闩锁
LATCH_DT0x405销毁闩锁
PAGELATCH_NL0x410空缓冲区页闩锁
PAGELATCH_KP0x411保持缓冲区页闩锁
PAGELATCH_SH0x412共享缓冲区页闩锁
PAGELATCH_UP0x413更新缓冲区页闩锁
PAGELATCH_EX0x414独占缓冲区页闩锁
PAGELATCH_DT0x415销毁缓冲区页闩锁
PAGEIOLATCH_NL0x420空缓冲区 I/O 页闩锁
PAGEIOLATCH_KP0x421保持缓冲区 I/O 页闩锁
PAGEIOLATCH_SH0x422共享缓冲区 I/O 页闩锁
PAGEIOLATCH_UP0x423更新缓冲区 I/O 页闩锁
PAGEIOLATCH_EX0x424独占缓冲区页 I/O 闩锁
PAGEIOLATCH_DT0x425销毁缓冲区 I/O 页闩锁


闩锁开头 SQL Server 2000 SP4,waitresource 列的最常见的无缓冲区闩该 Latch_XX 由使用下表中的值填充。SQL Server 2000 SP4 之前, 没有办法确定无缓冲区闩锁已被使用,没有一个 userdump 如的多个干扰诊断原因。通过使用该 waittime 查看该 waittype 或该 waitresource。在 waittime 以毫秒为单位) 指定线程的等待时间。
收起该表格展开该表格
Waitresource说明故障排除
FCB fgcb_alloc这些 Latch_XX 闩锁被保留页均分配从一个文件时,无论它是一个统一或混合扩展盘区。闩锁还保存如增长和收缩的文件、 重命名或删除一个文件或添加或删除文件的分配过程中。确定任何文件将收缩或增长。从 SQL Server 2000 SP4 开始自动增长选项将会记录该错误日志中如果所用的时间超过 30 秒。理想情况下,自动增长选项应作为一个备份,您应该使用明智的容量规划以避免该运行库的影响的不断增长的文件。您还可以为固定大小,更改 10%默认自动增长值。我们不建议您在生产中使用了自动收缩。此文件组中的文件可能还会发出许多请求分配的。您可以在该文件组中添加更多的文件。
跟踪 TRACE_CONTROLLER TRACE_IO_SYNC 出于探查器跟踪操作中的同步目的而保留这些 Latch_XX 闩锁。同步操作包括开始、 停止、 设置跟踪状态和读取器和编写器同步。标识正在运行的任何事件探查器跟踪。 请尽量避免在同一时间运行多个事件探查器跟踪。当启动探查器跟踪时,应用程序事件日志中记录跟踪。此外,可以在 SQL 查询分析器中使用下面的查询,以查看活动跟踪。
SELECT * FROM 
::fn_trace_getinfo(NULL)
PARALLEL_PAGE_SUPPLIER使用这些 Latch_XX 闩锁进行同步的并行查询的页的检索。此闩锁指示查询并行运行,可能是由于典型。如果 waittime 列是一个较大的值,并且查询佳,可以调整查询。
IDES并且 PFS 页将更新以反映分配和 deallocations 的页面时,PFS 页进行扫描以查找可用空间,使用 IDES 闩锁 waitresource。单个页均分配到已有对象时,也将使用此闩锁。确定您是否具有一个聚集的索引问题中的对象上。

其他 waittypes

下表列出了您可能会注意到在 SQL Server 2000 和 SQL Server 2005 master.dbo.sysprocesses 系统表中的其他 waittypes。
收起该表格展开该表格
LastwaittypeWaittype说明
睡眠状态0x20此 waittype 指示 SPID 在等待指定的时间,是一种常见的状态为后台线程处理该 lazywrites、 在的检查点或服务器端探查器跟踪事件的。
IO_COMPLETION0x21此 waittype 指示该 SPID 在等待完成的 I/O 请求。当为一个 SPID sysprocesses 系统表中,您注意到此 waittype 时,您必须通过分析查询计划,对应于该 SPID 使用性能监视器计数器、 探查器跟踪、 fn_virtualfilestats 系统表值函数,和 SHOWPLAN 选项识别磁盘瓶颈。您可以通过添加额外的 I/O 带宽,或在其他驱动器之间平衡 I/O 减少此 waittype。您还可以通过使用索引来减少 i/o 操作、 查找坏的查询计划并寻找内存压力。
ASYNC_IO_COMPLETION0x22此 waittype 指示该 SPID 在等待异步完成的 I/O 请求。像在 IO_COMPLETION waittype 此 waittype 还指示 I/O 瓶颈。如 BACKUP、 CREATE DATABASE、 ALTER DATABASE,或数据库自动增长在长时间运行我/O 绑定操作期间,您可能会为该 spid 中看到此 waittype。此 waittype 还可能指示磁盘瓶颈。
RESOURCE_SEMAPHORE0x40此 waittype 指示该 SPID 在等待资源上。此处,该 spid 通常等待获取排序或哈希操作查询执行过程中的内存。此 waittype 还可能指示该内存压力中缓冲区池的可见部分的存在。
DTC0x41此 waittype 指示该 SPID 在等待上 Microsoft 分布式事务处理协调器 (MS DTC) 服务。
OLEDB0x42此 waittype 指示一个 SPID 已在 OLE DB 提供程序的调用一个函数,并且正在等待函数返回所需的数据。此 waittype 还可能指示该 SPID 正在等待远程过程调用或链接的服务器查询以返回所需的数据。SPID 可能还会等待 BULK INSERT 命令或完整搜索查询以返回所需的数据。

用于 OLEDB waittype 指示几个不同等待包括的状态: 链接服务器查询、 全文本搜索查询、 BULK INSERT 命令、 客户端的事件探查器跟踪、 的虚拟表 (如 sysprocesses 表、 日志读取和 DBCC CHECKDB 具体化。
RESOURCE_QUEUE0x44这是普通背景中的线程 SQL Server 空闲状态。
ASYNC_DISKPOOL_LOCK0x45如创建、 展开,或删除数据库文件在长时间运行我/O 绑定操作期间,您可能会注意到此 waittype。
UMSTHREAD0x46此 waittype 指示已从客户端应用程序收到一个批处理,但是有没有可供该请求提供服务的工作线程。如果您持续看到 0x0046 waittypes 对于多个的 spid 有是使用所有可用的辅助线程的系统中其他地方很大的瓶颈。请注意 waittime 列始终是该 UMSTHREAD waittype 为 0,lastwaittype 列可能会错误地显示的 UMSTHREAD 而不是一个不同 waittype 的名称。
WRITELOG0x81此 waittype 指示该 SPID 在等待完成的事务日志 I/O 请求。此 waittype 还可能指示存在可能磁盘瓶颈。
PSS_CHILD
交换
CXPACKET
0x101
0x200
0x208
这些 waittypes 都将所有参与执行并行查询。这些 waittypes 指示 SPID 在等待完成或启动的并行流程。
PAGESUPP0x209此 waittype 跟踪由于的所需的序列化中分发给多个调用方在并行扫描的行时累算在等待时间。
光标0x20C此 waittype 指示该 SPID 正在线程同步参与,虽然它使用异步游标。在 sp_configure cursorthreshold 配置设置可能以异步方式创建游标时确定。
DBTABLE0x202此 waittype 表示一个线程正在等待执行检查点,另一个线程已在数据库的检查点。
EC0x203此 waittype 表示该 SPID 正在等待对执行上下文的访问。
TEMPOBJ0x204此 waittype 指示该 SPID 待删除仍在使用的临时对象。
XACTLOCKINFO0x205此 waittype 指示该 SPID 正在等待锁的对应列表上执行维护。
LOGMGR0x206此 waittype SPID 试图关闭数据库时使用,并等待完成挂起的事务日志 I/O 请求。
CMEMTHREAD0x207此 waittype 指示该 SPID 在等待线程安全内存对象的访问。序列化可以确保而该用户分配或释放内存对象的正在尝试执行相同的任务的任何其他 spid 内存必须要等到,和 CMEMTHREAD waittype 设置该 spid 在等待时。

您可能会注意到在许多情况下此 waittype。但是,此 waittype 特殊查询计划正在快速插入到许多不同的连接从一个过程高速缓存的 SQL Server 实例时将最常记录。通过限制必须插入或删除从过程高速缓存的数据,如显式参数化查询,以便可以重复使用查询或使用存储过程在适当的位置,您可以解决此瓶颈。
关机0x20A此 waittype 表示通过该的 SPID 发出关机命令,SPID 正在等待完成的活动查询。
WAITFOR0x20B此 waittype 指示该 SPID 处于睡眠状态由于一个 WAITFOR 延时 TRANSACT-SQL 语句。
NETWORKIO0x800此 waittype 指示该 SPID 在等待客户端应用程序之前该 SPID 可以将更多的结果发送到客户端应用程序获取数据。

参考

有关详细的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
244455sysprocesses waittype 和 lastwaittype 字段 SQL Server 7.0 的定义
有关 master.dbo.sysprocesses 系统表 SQL Server 2000 中的其他信息,请访问下面的 Microsoft 网站:
http://msdn2.microsoft.com/en-us/library/aa260456(SQL.80).aspx
有关在 SQL Server 2000 闩锁的详细信息,请访问下面的 Microsoft 网站:
http://msdn2.microsoft.com/en-us/library/aa224727(SQL.80).aspx

属性

文章编号: 822101 - 最后修改: 2007年5月17日 - 修订: 8.4
这篇文章中的信息适用于:
  • 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
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 822101
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com