症状
假设您安装了原始已发布且现已过时累积更新 6 for SQL Server 2014 Service Pack 1 (SP1)(内部版本号12.0.4449.0, KB 3144524),并且运行的工作负荷模式包括并行选择(...)使用NOLOCK,在默认的基于 SQL Server 的基于锁的隔离级别或更高级别下。 在这种情况下,你可能会遇到遇到阻塞或死锁的查询。 公开此阻止问题的模式如下所示:
-
执行并行化选择(...) 从 SourceTable 语句中的表中,特别是使用 NOLOCK 提示,在默认的 SQL Server 锁定隔离级别或更高级别下使用。 在此方案中,尝试访问 SourceTable 的其他查询将被阻止。
-
当一个事务在某个对象(例如正在进行的表更新)上持有独占锁时,另一个事务正在执行并行化选择(...) 通过使用 NOLOCK 提示从 SourceTable。 在此方案中,尝试访问 SourceTable 的选择查询将被阻止。
若要查找已安装的 SQL Server 的当前版本,请参阅如何确定 Sql server 的版本、版本和更新级别及其组件。
解决方案
此问题首先在 SQL Server 的以下累积更新中修复:
SQL Server 的每个新的累积更新均包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。
参考
了解 Microsoft 用于描述软件更新的 术语 。