修复: 未检测到死锁时发生 CXPACKET 等待锁定所有者

文章翻译 文章翻译
文章编号: 293232 - 查看本文应用于的产品
错误 #: 352575,352695 (SHILOH)
展开全部 | 关闭全部

症状

当一个 CXPACKET 正在等待锁的所有者执行上下文 (EC) 时,并行查询可能会遇到一个未检测到死锁。

对于要您必须具有两个 spid 以及每个 spid 都必须正在运行并行查询就会发生死锁。

sysprocesses 输出与锁和等待 CXPACKET 其他某些等待显示多个 ECs (单个的 spid 的名义工作)。

该模式是从任一 spid 没有直接 EC 相关性会导致标准锁服务员死锁。每个锁服务员 CXPACKET 资源上正在等待所有者被阻止。您可以使用从 syslockinfo 系统表的查询收集的信息来验证此模式。

若要确定该 SQL Server 是否遇到该问题,请使用以下步骤:
  1. 执行一个"SELECT *"sysprocesses 系统表中查询,然后执行一个"SELECT *"syslockinfo 系统表中的查询。
  2. 找到一个被阻止的 EC,等待一个锁。
  3. 搜索要查看谁拥有该锁输出。
  4. 确定是否所属 EC 正在等待上一个 CXPACKET。
  5. 对所有的两个可疑的 spid ECs 重复第 1 步到第 4 步。
模式必须是一个 CXPACKET 正在等待的所有阻塞锁所有者。

解决方案

若要解决此问题,获得最新的 service pack,对于 SQL Server 2000。有关更多的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
290211INF: 如何获取最新的 SQL Server 2000 Service Pack

修补程序

此修复程序的英文版应具有以下文件属性或更高版本:
   File name   Platform
   --------------------
   s80263i.exe INTEL
				
: 由于文件相关性最新的修补程序或功能,它包含上述文件可能还包含其他文件。

替代方法

若要解决死锁情况,请使用两种:
  • 查询超时。

    -或者-

  • TRANSACT-SQL KILL 命令。

状态

Microsoft 已经确认这是 SQL Server 2000 中的问题。此问题 SQL Server 2000 Service Pack 1 中第一次已得到纠正。

属性

文章编号: 293232 - 最后修改: 2003年10月9日 - 修订: 3.1
这篇文章中的信息适用于:
  • Microsoft SQL Server 2000 标准版
关键字:?
kbmt kbbug kbfix kbqfe kbsqlserv2000sp1fix KB293232 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 293232
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