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

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

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

<script type="text/javascript"></script>

本页

<script type="text/javascript"></script>
展开全部 | 关闭全部 <script type="text/javascript"></script>

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

<script type="text/javascript"></script>
在 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 系统表包含以下列,帮助系统管理员监视资源争用情...

<script type="text/javascript"></script>
存储在您的实例的 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

<script type="text/javascript"></script> 下表列出了在 SQL Server 2000 和 SQL Server 2005 master.dbo.sysprocesses 系统表中的锁定 waittype。
收起该表格 展开该表格
lastwaittypewaittype说明
LCK_M_SCH_S0 x 01架构稳定性
LCK_M_SCH_M0 x 02架构修改
LCK_M_S0 x 03共享
LCK_M_U0x04更新
LCK_M_X0 x 05独占
LCK_M_IS0 x 06意向共享
LCK_M_IU0 x 07意向更新
LCK_M_IX0 x 08意向-专用
LCK_M_SIU共享意向更新
LCK_M_SIX0x0a共享 Intent 以独占方式
LCK_M_UIX0x0b更新 Intent 以独占方式
LCK_M_BU0x0c批量更新
LCK_M_RS_S0x0d范围共享共享
LCK_M_RS_U0x0e范围共享更新
LCK_M_RI_NL0x0F区域插入 NULL
LCK_M_RI_S0 x 10区域插入共享
LCK_M_RI_U0x11区域插入更新
LCK_M_RI_X出现区域插入以独占方式
LCK_M_RX_S0 x 13范围专用共享
LCK_M_RX_U0 x 14区域包含更新
LCK_M_RX_X0x15区域包含专用
有关 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

<script type="text/javascript"></script> 闩锁都是一个短期的轻量的同步对象。 下面列出了不同类型的闩锁:
  • 非缓冲非 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。
收起该表格 展开该表格
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 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 列是一个较大的值,并且查询欠佳,请调整查询。
IDESIDES 闩锁 waitresource 用于 PFS 页扫描以查找可用空间时,以及 PFS 页更新以反映分配和释放的页数时。 单个页被分配给现有对象时,还用于此闩锁。确定是否有问题在对象上有聚集的索引。

其他 waittype

<script type="text/javascript"></script> 下表列出了您可能注意到在 SQL Server 2000 和 SQL Server 2005 master.dbo.sysprocesses 系统表中,其他 waittype。
收起该表格 展开该表格
lastwaittypewaittype说明
睡眠状态0 x 20此 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 瓶颈。 您可能会在长时间运行 I / O 密集型操作过程中,如 BACKUP、 CREATE DATABASE,ALTER DATABASE 或数据库自动增长,SPID 看到此 waittype。 此 waittype 也可能表明磁盘瓶颈。
RESOURCE_SEMAPHORE0 x 40此 waittype 表示 SPID 正在等待资源。 此处,在 SPID 通常等待获取排序或哈希操作查询执行过程中的内存。 此 waittype 也可能表明内存压力位于缓冲池的可见的一部分。
DTC0x41此 waittype 表示 SPID 等待 Microsoft 分布式事务处理协调器 (MS DTC) 服务。
OLEDB0 x 42此 waittype 表示的 SPID 了函数调用 OLE DB 提供程序正在等待使用函数来返回所需的数据。 此 waittype 还可能在 SPID 正在等待远程过程调用,或链接服务器查询以返回所需的数据。 SPID 可能还会等待 BULK INSERT 命令或全文搜索查询返回所需的数据。

使用 OLEDB waittype 表示几个不同等待状态,包括: 链接服务器查询、 全文搜索查询 BULK INSERT 命令,客户端事件探查器跟踪、 与 sysprocesses 表、 日志读取器和 DBCC CHECKDB 的虚拟表的少。
RESOURCE_QUEUE0 x 44这是一个普通的空闲 ” 状态 SQL Server 中的后台线程。
ASYNC_DISKPOOL_LOCK0x45在长时间运行 I / O 密集型操作过程中创建、 扩展,或删除数据库文件可能会发现此 waittype。
UMSTHREAD0此 waittype 指示从一个客户端应用程序接收批处理,但有可用于处理请求没有工作线程。 如果您持续看到 0x0046 waittype 对于多个 SPID,没有明显瓶颈其他地方使用所有可用的工作线程的系统中。 请注意 waittime 列是始终在 UMSTHREAD waittype 为 0, lastwaittype 列可能会错误地显示而不是 UMSTHREAD 的不同 waittype 的名称"。
WRITELOG0x81此 waittype 表示 SPID 正在等待完成的事务日志 I / O 请求。 此 waittype 也可能表明可能磁盘瓶颈。
PSS_CHILD
EXCHANGE
CXPACKET
0x101
0x200
0x208
以下 waittype 是所有参与并行查询执行。 以下 waittype 表示 SPID 的等待完成或启动一个并行进程。
PAGESUPP0x209此 waittype 跟踪导致因中分发并行的扫描中的多个调用方的行所需的序列化的等待时间。
CURSOR0x20C此 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。 但是,特别查询计划在快速插入到许多不同的连接在过程缓存到 SQL Server 的实例时,经常将记录此 waittype。 可以通过如显式,以便重复使用查询参数化查询或使用存储过程在适当限制必须能插入或从该过程缓存中删除的数据来解决瓶颈问题。
SHUTDOWN0x20A此 waittype 表示由该的 SPID 颁发 SHUTDOWN 命令并 SPID 等待完成的活动查询。
在 WAITFOR0x20B此 waittype 表示 SPID 正在休眠因在 WAITFOR DELAY Transact-SQL 语句。
NETWORKIO0 x 800此 waittype 表示 SPID 正在等待客户端应用程序 SPID 更多的结果发送到客户端应用程序之前获取数据。

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

<script type="text/javascript"></script>
有关详细信息,单击下面的文章编号,以查看 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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值