FIX: 一个死锁发生,如果您运行一个显式更新统计信息命令

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

点击这里察看该文章的英文版: 826754
本文已归档。它按“原样”提供,并且不再更新。
错误 #: 470125 (SHILOH_BUGS)
症状
如果您是显式的更新统计信息命令对运行在同一个表从两个不同的连接在同一时间,这两个连接可能会死锁。一个连接收到下面的错误消息并取消其更新统计信息命令:
服务器: 消息 1205,级别 13,50,状态行 3
事务 (进程 ID 52) 已被死锁的锁资源与另一个进程,并已被选作死锁牺牲品。 请重新运行该事务。
死锁和其伴随出现的 1205年错误不是这种情况的唯一的。在很多其他,不相关的方案,也可能发生死锁。如果启用了跟踪标志 1204 捕获有关此特定的死锁的更多详细信息将会看到这两个连接发生死锁 sysindexes 表 (对象 ID 2) 上的聚集的索引 KEY 资源上。若要将共享的锁转换为一个更新锁的两个连接尝试并跟踪标志 1204年的输出报告语句类型,对于这两个连接为 UPDATE 的统计信息。
解决方案

服务包信息

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

修补程序信息

此修补程序的英文版具有文件属性 (或更高版本) 下表中列出。其格式为协调通用时间 (UTC) 列出日期和时间对这些文件。当您查看文件信息时,将转换为本地时间。若要 UTC 与本地时间之间的时差使用控制面板中的日期和时间工具中的 时区 选项卡。
   Date         Time   Version            Size    File name   -------------------------------------------------------------------   31-May-2003  18:45  2000.80.818.0      78,400  Console.exe         25-Jun-2003  01:01  2000.80.818.0      33,340  Dbmslpcn.dll        25-Apr-2003  02:12                    786,432  Distmdl.ldf   25-Apr-2003  02:12                  2,359,296  Distmdl.mdf   30-Jan-2003  01:55                        180  Drop_repl_hotfix.sql   23-Jun-2003  22:40  2000.80.837.0   1,557,052  Dtsui.dll           23-Jun-2003  22:40  2000.80.837.0     639,552  Dtswiz.dll          24-Apr-2003  02:51                    747,927  Instdist.sql   03-May-2003  01:56                      1,581  Inst_repl_hotfix.sql   08-Feb-2003  06:40  2000.80.765.0      90,692  Msgprox.dll         01-Apr-2003  02:07                      1,873  Odsole.sql   05-Apr-2003  01:46  2000.80.800.0      62,024  Odsole70.dll        07-May-2003  20:41  2000.80.819.0      25,144  Opends60.dll        02-Apr-2003  21:48  2000.80.796.0      57,904  Osql.exe            02-Apr-2003  23:15  2000.80.797.0     279,104  Pfutil80.dll        04-Aug-2003  18:17                    550,780  Procsyst.sql   22-May-2003  22:57                     19,195  Qfe469571.sql   11-Jul-2003  17:04                  1,084,147  Replmerg.sql   04-Apr-2003  21:53  2000.80.798.0     221,768  Replprov.dll        08-Feb-2003  06:40  2000.80.765.0     307,784  Replrec.dll         13-Aug-2003  16:28                  1,086,797  Replsys.sql   13-Aug-2003  16:28                    986,603  Repltran.sql   29-Jul-2003  20:13  2000.80.819.0     492,096  Semobj.dll          31-May-2003  18:27  2000.80.818.0     172,032  Semobj.rll   05-Aug-2003  21:06                    127,884  Sp3_serv_uni.sql   01-Jun-2003  01:01  2000.80.818.0   4,215,360  Sqldmo.dll          07-Apr-2003  17:44                     25,172  Sqldumper.exe       19-Mar-2003  18:20  2000.80.789.0      28,672  Sqlevn70.rll   02-Jul-2003  00:18  2000.80.834.0     180,736  Sqlmap70.dll        08-Feb-2003  06:40  2000.80.765.0      57,920  Sqlrepss.dll        13-Aug-2003  20:04  2000.80.851.0   7,598,161  Sqlservr.exe        25-Jul-2003  21:44  2000.80.845.0     590,396  Sqlsort.dll         08-Feb-2003  06:40  2000.80.765.0      45,644  Sqlvdi.dll          25-Jun-2003  01:01  2000.80.818.0      33,340  Ssmslpcn.dll        01-Jun-2003  01:01  2000.80.818.0      82,492  Ssnetlib.dll        01-Jun-2003  01:01  2000.80.818.0      25,148  Ssnmpn70.dll        01-Jun-2003  01:01  2000.80.818.0     158,240  Svrnetcn.dll        31-May-2003  18:59  2000.80.818.0      76,416  Svrnetcn.exe        30-Apr-2003  23:52  2000.80.816.0      45,132  Ums.dll             02-Jul-2003  00:19  2000.80.834.0      98,816  Xpweb70.dll
注意由于存在文件依赖性最新的修补程序或功能,它包含这些文件可能还包含其他文件。

此修复程序是 SQL Server 内部版本号 851,它仅可应用于运行 SQL Server 2000 Service Pack 3 (SP3) 的计算机或基于 SQL Server SP3 的修复程序版本。
状态
Microsoft 已经确认这是在本文开头列出的 Microsoft 产品中的问题。 Microsoft SQL Server 2000 Service Pack 4 中,第一次已得到纠正此问题。
替代方法
要变通解决此问题,不要运行更新统计信息从两个连接在同一时间对同一个表。
更多信息
此问题只发生在显式更新统计信息的命令或 sp_updatestats 为存储过程。(sp_updatestats 存储过程运行更新统计信息)。此问题不会发生原因是 自动更新统计信息自动创建统计信息 数据库选项或由于显式创建统计信息的命令。此修补程序序列化的统计信息创建和 $ 自动更新统计信息 事件已序列化的方法相同的行为在同一个表更新统计数据命令。

警告:本文已自动翻译

属性

文章 ID:826754 - 上次审阅时间:12/08/2015 04:12:52 - 修订版本: 7.3

Microsoft SQL Server 2000 Developer Edition, Microsoft SQL Server 2000 标准版, Microsoft SQL Server 2000 Enterprise Edition, Microsoft SQL Server 2000 Personal Edition, Microsoft SQL Server 2000 Workgroup Edition, Microsoft SQL Server 2000 Desktop Engine (Windows), Microsoft SQL Server 2000 Enterprise Edition 64-bit

  • kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbqfe kbsqlserv2000presp4fix kbfix kbbug KB826754 KbMtzh
反馈