Microsoft 将 Microsoft SQL Server 2008 R2 和 Microsoft SQL Server 2012 作为一个可下载文件进行分发。 由于修补程序是累积的,因此每个新版本都包含以前的 SQL Server 2008 R2 和 Microsoft SQL Server 2012 修复版本附带的所有修补程序和所有安全修补程序。
症状
请考虑以下情况:
-
你已在 Microsoft SQL Server 2008 R2 或 Microsoft SQL Server 2012 实例上安装了 Microsoft 知识库(KB)文章2590839中的修补程序。
-
在 SQL Server 实例上托管数据库。
-
数据库具有一个存储为堆的表。
-
在表上启用数据压缩。
-
为数据库启用 "已提交快照隔离" (RCSI)。
在此方案中,你将在页面空闲空间(PFS)页面上收到以下闩锁超时消息:
时间戳 SpidID等待缓冲区闩锁时超时--类型3、bp 0000000500DA4380、page 1:1、stat 0xb、数据库 id:10、分配单元 id:6488064、任务0x00000004538BF0C8:0、waittime 300 秒、标志0x100000001a、拥有的任务0x00000004538BF0C8。 继续等待。
注意若要从此问题中恢复,可能需要重新启动 SQL Server,或者你可能需要在 "任务管理器" 中终止进程。
原因
出现此问题的原因是,在 PFS 页面上更新了 ghost 位之后,PFS 页面上的独占闩锁未释放。
解决方案
SQL Server 2008 R2 的 Service pack 信息
若要解决此问题,请获取最新的 SQL Server 2008 R2 服务包。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2527041如何获取最新的 SQL Server 2008 R2 服务包
累积更新信息
SQL Server 2008 R2 Service Pack 1
此问题的修补程序首次发布,即累积更新8。有关如何为 SQL Server 2008 R2 Service Pack 1 获取此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2723743 SQL Server 2008 R2 SP1 的累积更新程序包8注意 由于这些版本是累积的,因此每个新的修复版本都包含了以前的 SQL Server 2008 R2 Service Pack 1 修复版本附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2567616 发布 SQL Server 2008 R2 SP1 后发布的 SQL Server 2008 R2 版本
SQL Server 2012
此问题的修补程序首次在 SQL Server 2012 的累积更新2中发布。有关如何获取此累积更新包的 SQL Server 的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2703275 SQL Server 2012 的累积更新程序包2可用注意 由于这些版本是累积的,因此每个新的修复版本都包含了以前的 SQL Server 修复版本附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2692828 在 SQL Server 2012 发布后发布的 SQL Server 2012 版本
SQL Server 2008 R2
此问题的修补程序首次发布于 SQL Server 2008 R2 的累积更新14。有关如何获取此累积更新包的 SQL Server 的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2703280 SQL Server 2008 R2 的累积更新程序包14注意 由于这些版本是累积的,因此每个新的修复版本都包含了以前的 SQL Server 修复版本附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
981356 发布 SQL Server 2008 R2 后发布的 SQL Server 2008 R2 版本
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。