修补程序: 错误消息后的 SQL Server 服务错误日志文件或 SQL Server 2008年的 SQL Server 2005 中停止响应:"等待闩锁时出现超时"

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

5个基于SP3的安装包都需要安装

Microsoft 将 Microsoft SQL Server 2005 修补程序作为一个可下载文件进行分发。 修补程序是累积性的因为每个新版本包含的所有修补程序和已包含上一个 SQL Server 2005 的所有安全修补程序修补都程序版本。 Microsoft 将 Microsoft SQL Server 2008 修补程序作为一个可下载文件进行分发。 修补程序是累积性的因为每个新版本包含的所有修补程序和已包含上一个 SQL Server 2008年的所有安全修补程序修补都程序版本。

本页

症状

在 Microsoft SQL Server 2005 中,您可能会遇到以下问题之一。

问题 1

在 SQL Server 服务停止响应,并在 SQL Server 2005 日志文件夹中生成内存转储文件。此外,SQL 服务器 2005年错误日志文件中记录以下错误消息:

Date Time SPID等待闩锁时发生超时: 类 QUERY_OPTIMIZER_ID_MANAGER,这是 id 000000008031A7E0 键入 4,任务 0x0000000000DAFAC8: 0,300,waittime 标志 0x1a,拥有任务 0x0000000005454718。继续等待。 " _msthash="382889" _mstchunk="true">Date " _msthash="382889" _mstchunk="true">Date Time " _msthash="765778" _mstchunk="true">Time SPID " _msthash="1148667" _mstchunk="true">SPID在等待闩锁的同时发生超时: 类 QUERY_OPTIMIZER_ID_MANAGER,id 000000008031A7E0,键入任务 0x0000000000DAFAC8 4: 0、 waittime 300,标志 0x1a 所属任务 0x0000000005454718。继续等待。
Date Time SPID等待闩锁时发生超时: 类 QUERY_OPTIMIZER_ID_MANAGER,这是 id 000000008031A7E0 键入 4,任务 0x000000000771A328: 0,300,waittime 标志 0x1a,拥有任务 0x0000000005454718。继续等待。 " _msthash="382890" _mstchunk="true">Date " _msthash="382890" _mstchunk="true">Date Time " _msthash="765780" _mstchunk="true">Time SPID " _msthash="1148670" _mstchunk="true">SPID在等待闩锁的同时发生超时: 类 QUERY_OPTIMIZER_ID_MANAGER,id 000000008031A7E0,键入任务 0x000000000771A328 4: 0、 waittime 300,标志 0x1a 所属任务 0x0000000005454718。继续等待。
Date Time SPID使用 dbghelp.dll 版本'4.0.5' " _msthash="382891" _mstchunk="true">Date " _msthash="382891" _mstchunk="true">Date Time " _msthash="765782" _mstchunk="true">Time SPID " _msthash="1148673" _mstchunk="true">SPID使用 dbghelp.dll"4.0.5"版本
Date Time SPID** 转储线程的 spid="148,PSS" = 0x0000000126F4FBF0,EC = 0x0000000126F4FC00 " _msthash="382892" _mstchunk="true">Date " _msthash="382892" _mstchunk="true">Date Time " _msthash="765784" _mstchunk="true">Time SPID **Dump thread - spid="148," pss="0x0000000126F4FBF0," ec="0x0000000126F4FC00" " _msthash="1148676" _mstchunk="true">SPID * * 转储线程-spid 148,PSS = = 0x0000000126F4FBF0,EC = 0x0000000126F4FC00
Date Time SPID*** 发送到是 Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG\SQLDump0021.txt 堆栈转储 " _msthash="382893" _mstchunk="true">Date " _msthash="382893" _mstchunk="true">Date Time " _msthash="765786" _mstchunk="true">Time SPID ***Stack Dump being sent to C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG\SQLDump0021.txt " _msthash="1148679" _mstchunk="true">SPID *** 堆栈转储发送到 C:\Program 主题 SQL Server\MSSQL.1\MSSQL\LOG\SQLDump0021.txt
Date Time SPID" _msthash="382894" _mstchunk="true">Date " _msthash="382894" _mstchunk="true">Date Time " _msthash="765788" _mstchunk="true">Time SPID" _msthash="1148682" _mstchunk="true">SPID* *******************************************************************************
Date Time SPID" _msthash="382895" _mstchunk="true">Date " _msthash="382895" _mstchunk="true">Date Time " _msthash="765790" _mstchunk="true">Time SPID" _msthash="1148685" _mstchunk="true">SPID*
Date Time SPID* 开始堆栈转储: " _msthash="382896" _mstchunk="true">Date " _msthash="382896" _mstchunk="true">Date Time " _msthash="765792" _mstchunk="true">Time SPID * BEGIN STACK DUMP: " _msthash="1148688" _mstchunk="true">SPID * 开始堆栈转储:
Date Time SPID* Date Time SPID" _msthash="382897" _mstchunk="true">Date " _msthash="382897" _mstchunk="true">Date Time " _msthash="765794" _mstchunk="true">Time SPID * Date Time SPID" _msthash="1148691" _mstchunk="true">SPID * SPIDDate Time
Date Time SPID" _msthash="382898" _mstchunk="true">Date " _msthash="382898" _mstchunk="true">Date Time " _msthash="765796" _mstchunk="true">Time SPID" _msthash="1148694" _mstchunk="true">SPID*
Date Time SPID* 闩锁超时 " _msthash="382899" _mstchunk="true">Date " _msthash="382899" _mstchunk="true">Date Time " _msthash="765798" _mstchunk="true">Time SPID * Latch timeout " _msthash="1148697" _mstchunk="true">SPID * 闩锁超时
Date Time SPID" _msthash="382900" _mstchunk="true">Date " _msthash="382900" _mstchunk="true">Date Time " _msthash="765800" _mstchunk="true">Time SPID" _msthash="1148700" _mstchunk="true">SPID*
Date Time SPID* 输入缓冲区 168 字节- " _msthash="382901" _mstchunk="true">Date " _msthash="382901" _mstchunk="true">Date Time " _msthash="765802" _mstchunk="true">Time SPID * Input Buffer 168 bytes - " _msthash="1148703" _mstchunk="true">SPID * 输入缓冲区 168 个字节-
Date Time SPID* SELECT backup_set_id FROM msdbbackupset WITH (NOLOCK) WHERE media_set_ " _msthash="382902" _mstchunk="true">Date " _msthash="382902" _mstchunk="true">Date Time " _msthash="765804" _mstchunk="true">Time SPID * SELECT backup_set_id FROM msdb.." _msthash="1148706" _mstchunk="true">SPID * 选择 backup_set_id 从 msdb。.backupset 与 (NOLOCK) WHERE media_set_
Date Time SPID* id="226059" " _msthash="382903" _mstchunk="true">Date " _msthash="382903" _mstchunk="true">Date Time " _msthash="765806" _mstchunk="true">Time SPID * id="226059" " _msthash="1148709" _mstchunk="true">SPID * id = 226059
Date Time SPID" _msthash="382904" _mstchunk="true">Date " _msthash="382904" _mstchunk="true">Date Time " _msthash="765808" _mstchunk="true">Time SPID" _msthash="1148712" _mstchunk="true">SPID*
Date Time SPID" _msthash="382905" _mstchunk="true">Date " _msthash="382905" _mstchunk="true">Date Time " _msthash="765810" _mstchunk="true">Time SPID" _msthash="1148715" _mstchunk="true">SPID* *******************************************************************************
Date Time SPID" _msthash="382906" _mstchunk="true">Date " _msthash="382906" _mstchunk="true">Date Time " _msthash="765812" _mstchunk="true">Time SPID" _msthash="1148718" _mstchunk="true">SPID* -------------------------------------------------------------------------------
Date Time SPID* 短的堆栈转储 " _msthash="382907" _mstchunk="true">Date " _msthash="382907" _mstchunk="true">Date Time " _msthash="765814" _mstchunk="true">Time SPID * Short Stack Dump " _msthash="1148721" _mstchunk="true">SPID * 短堆栈转储
Date Time SPID堆栈转储签名是 0x00000001212FF0DE " _msthash="382908" _mstchunk="true">Date " _msthash="382908" _mstchunk="true">Date Time " _msthash="765816" _mstchunk="true">Time SPID " _msthash="1148724" _mstchunk="true">SPID堆栈转储签名是 0x00000001212FF0DE
Date Time SPID等待闩锁时发生超时: 类 QUERY_OPTIMIZER_ID_MANAGER,这是 id 000000008031A7E0 键入 4,任务 0x0000000007F31D68: 0,300,waittime 标志 0x1a,拥有任务 0x0000000005454718。继续等待。 " _msthash="382909" _mstchunk="true">Date " _msthash="382909" _mstchunk="true">Date Time " _msthash="765818" _mstchunk="true">Time SPID " _msthash="1148727" _mstchunk="true">SPID在等待闩锁的同时发生超时: 类 QUERY_OPTIMIZER_ID_MANAGER,id 000000008031A7E0,键入任务 0x0000000007F31D68 4: 0、 waittime 300,标志 0x1a 所属任务 0x0000000005454718。继续等待。


发生此问题时,服务器不会响应任何试图进行的操作。再次要使 SQL Server 功能的唯一方法是重新启动 SQL Server 服务。
注意任何系统或用户级查询可能会遇到此问题。" _msthash="21362" _mstchunk="true">Note " _msthash="21362" _mstchunk="true">注意任何系统或用户级别查询可能会遇到此问题。

问题 2

当 SQL Server 2005 的查询优化器生成查询计划时,查询优化器可能会一直等待自旋锁被释放。自旋锁用于访问内部结构,以记录有关查询计划缺少索引的信息。查询优化程序正在等待自旋锁,而查询优化器不会释放该计划程序。在极少数情况下查询优化器不能够获得自旋锁并保持按住该计划程序。错误和其他错误将被记录在 SQL Server 错误日志文件中,这会导致"无产出计划"。此外,SQL Server 将在 SQL Server 日志文件夹创建内存转储。在内存转储记录问题查询优化器不会释放该计划程序的上下文。

如果查询优化程序优化多个计划程序上的多个查询,此问题可能会生成一个或多个"非产出计划程序"在 SQL Server 错误日志文件中的错误。

下面是发生此问题时 SQL Server 错误日志文件中记录的示例错误。

注意多个原因,'非并生成计划程序'的错误。您必须分析内存转储,以确定是否在上下文错误与本文所述的问题上下文匹配的'非并生成计划程序'。" _msthash="21366" _mstchunk="true">Note " _msthash="21366" _mstchunk="true">注意还有多个原因"无产出计划"的错误。必须分析内存转储,以确定是否在上下文错误与本文中描述的问题上下文匹配的"非产出计划程序"。
错误 1
**Dump thread - spid = 0, PSS = 0x0000000000000000, EC = 0x0000000000000000
***Stack Dump being sent to D:\Microsoft Sql Server\MSSQL.1\MSSQL\LOG\SQLDump0001.txt
* *******************************************************************************
*
* BEGIN STACK DUMP:
*   10/22/09 11:01:13 spid 0
*
* Deadlocked Schedulers
*
* *******************************************************************************
* -------------------------------------------------------------------------------
* Short Stack Dump
Stack Signature for the dump is 0x00000000000000D7
External dump process return code 0x20000001.
错误 2
* *******************************************************************************
*
* BEGIN STACK DUMP:
*   10/22/09 11:01:23 spid 0
*
* Non-yielding Scheduler
*
* *******************************************************************************
Stack Signature for the dump is 0x00000000000000D7
错误 3
<Date><Time> Server      New queries assigned to process on Node 0 have not been picked  up by a worker thread in the last 60 seconds. Blocking or long-running queries can contribute to this condition, and may degrade client response time.  Use the "max worker threads" configuration option to increase number  of allowable threads, or optimize current running queries.  SQL Process Utilization: 0%. System Idle: 99%.
错误 4
注意进程 ID、 辅助 ID、 计划程序 ID 和时间可能会更改您的方案。" _msthash="21367" _mstchunk="true">Note " _msthash="21367" _mstchunk="true">注意进程 ID、 辅助 ID,计划程序 ID 和时间可能会更改您的方案。
Process 103:0:0 (0x4e0) Worker 0x0000000090A1A1C0 appears to be non-yielding on Scheduler 1. Thread creation time: 12900592800518. Approx Thread CPU Used: kernel 0 ms, user 0 ms. Process Utilization 0%. System Idle 98%. Interval: 74595 ms.
Process 101:0:0 (0x15f0) Worker 0x00000000908A01C0 appears to be non-yielding on Scheduler 2. Thread creation time: 12900652201513. Approx Thread CPU Used: kernel 0 ms, user 0 ms. Process Utilization 0%. System Idle 98%. Interval: 76376 ms.
Process 61:0:0 (0x144) Worker 0x00000000FB4141C0 appears to be non-yielding on Scheduler 0. Thread creation time: 12900697200999. Approx Thread CPU Used: kernel 0 ms, user 0 ms. Process Utilization 0%. System Idle 98%. Interval: 76376 ms.
Process 67:0:0 (0x1778) Worker 0x00000000902081C0 appears to be non-yielding on Scheduler 3. Thread creation time: 12900129835565. Approx Thread CPU Used: kernel 0 ms, user 0 ms. Process Utilization 0%. System Idle 98%. Interval: 76376 ms.

原因

当 SQL Server 处理缺少的索引信息的动态管理视图 (DMV) 时,会出现此问题。无需用户干预要求会导致此问题。此问题是一个罕见的、 与计时相关的问题。

解决方案

SQL Server 2005 的服务包 3
首次发布此问题的修补程序已累积更新 6 中 SQL 服务器 2005 Service Pack 3。有关此累积更新包的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
974648 累积更新包 6 个 SQL 服务器 2005 Service Pack 3
注意因为这些版本是累积性的因此每个新的修补程序版本包含的所有修补程序和所有安全修补程序附带以前 SQL Server 2005 修补都程序版本。Microsoft 建议您考虑应用最新的修补程序版本包含此修补程序。有关详细的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:" _msthash="21594" _mstchunk="true">Note " _msthash="21594" _mstchunk="true">注意生成是累积性的因为每个新修补程序版本包含的所有修补程序和已包含上一个 SQL Server 2005 的所有安全修补程序修补都程序版本。Microsoft 建议您考虑将应用了最新的修补程序版本包含此修复程序。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
960598 SQL Server 2005 在 SQL 服务器 2005 Service Pack 3 月发布之后发布的生成
为特定的 SQL Server 服务包创建 Microsoft SQL Server 2005年的修补程序。必须将 SQL 服务器 2005 Service Pack 3 修补程序应用到安装的 SQL 服务器 2005 Service Pack 3。默认情况下,任何 SQL Server service pack 中提供的修补程序包含在下一次 SQL Server service pack。
SQL Server 2008年的发行版
重要如果您正在 SQL Server 2008 的发行版本,您必须安装此修复程序。" _msthash="21596" _mstchunk="true">Important " _msthash="21596" _mstchunk="true">重要如果您运行的 SQL Server 2008年的发行版,您必须安装此修复程序。

累积更新 8 中首次发布此问题的修补程序。有关如何获取此累积更新包,SQL Server 2008 年的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
975976 SQL Server 2008 年累积更新包 8
注意因为这些版本是累积性的因此每个新的修补程序版本包含的所有修补程序和所有安全修复程序以前 SQL Server 2008 中包含的修补都程序版本。我们建议您考虑应用最新的修补程序版本包含此修补程序。有关详细的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:" _msthash="21598" _mstchunk="true">Note " _msthash="21598" _mstchunk="true">注意生成是累积性的因为每个新修补程序版本包含的所有修补程序和已包含上一个 SQL Server 2008年的所有安全修补程序修补都程序版本。我们建议您考虑将应用了最新的修补程序版本包含此修复程序。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
956909 SQL Server 2008年在 SQL Server 2008年月发布之后发布的生成
SQL Server 2008年的 Service Pack 1
重要如果您正在运行 SQL Server 2008 Service Pack 1,您必须安装此修复程序。" _msthash="21599" _mstchunk="true">Important " _msthash="21599" _mstchunk="true">重要如果您运行的 SQL Server 2008 Service Pack 1,您必须安装此修复程序。

此问题的修补程序首次发布累积更新 5 中的 SQL Server 2008 Service Pack 1。有关此累积更新包的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
975977 对于 SQL Server 2008 Service Pack 1 的累积更新包 5
注意因为这些版本是累积性的因此每个新的修补程序版本包含的所有修补程序和所有安全修复程序以前 SQL Server 2008 中包含的修补都程序版本。Microsoft 建议您考虑应用最新的修补程序版本包含此修补程序。有关详细的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:" _msthash="21601" _mstchunk="true">Note " _msthash="21601" _mstchunk="true">注意生成是累积性的因为每个新修补程序版本包含的所有修补程序和已包含上一个 SQL Server 2008年的所有安全修补程序修补都程序版本。Microsoft 建议您考虑将应用了最新的修补程序版本包含此修复程序。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
970365 SQL Server 2008年在 SQL Server 2008 Service Pack 1 月发布之后发布的生成
为特定的 SQL Server 服务包创建 Microsoft SQL Server 2008年的修补程序。必须将一个 SQL Server 2008 Service Pack 1 修补程序应用到安装的 SQL Server 2008 Service Pack 1。默认情况下,任何 SQL Server service pack 中提供的修补程序包含在下一次 SQL Server service pack。

状态

Microsoft 已经确认这是在"适用于"一节中列出的 Microsoft 产品中的问题。

参考

SQL Server 增量服务模式的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
935897 增量服务模式是可以从 SQL Server 组提供报告的问题的修补程序
有关如何获取 SQL 服务器 2005 Service Pack 3 中,单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
913089 如何获取适用于 SQL Server 2005 的最新 Servece Pack
有关 SQL 2005 Service Pack 3 (SP3) 中的新功能以及在 SQL Server 2005 SP3 中的改进的更多信息,请访问下面的 Microsoft Web 站点:
http://go.microsoft.com/fwlink/?LinkId=131442
更新 SQL Server 的命名架构的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
822499 对于 Microsoft SQL Server 软件更新程序包的新命名方案
有关软件更新术语的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
824684 用于描述 Microsoft 软件更新的标准术语的说明

属性

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值