生成式AI领域的最新成果都在这里!抢 QCon 展区门票 了解详情
写点什么

SQL Server 2014 SP1 的 NOLOCK 指令中断

  • 2016-06-01
  • 本文字数:765 字

    阅读完需:约 3 分钟

在针对 SQL Server 2014 SP1 的 Cumulative Update #6 更新中,NOLOCK 指令中断。因此,依赖 NOLOCK 指令的数据库可能会意外地经历阻塞或是死锁。根据 SQL Server Release Services 博客最新更新的一篇文章,具体的情景是这样的:

在默认的基于锁的隔离级别或更高的隔离级别下,执行并行的 SELECT (…) INTO Table FROM
SourceTable 语句,特别当使用 NOLOCK 提示时。在这种情况下其他试图访问 SourceTable 的查询将阻塞。

当一个事务持有对象的排他锁(例如进行中的表更新),另外一个事务正在执行并行的 SELECT (…) FROM
SourceTable,并使用 NOLOCK 提示。在这种情况下,尝试访问 SourceTable 的 SELECT 查询将被阻塞。

根据 Microsoft 发布团队的成员 Pedro Lopes 所说,这个错误不会影响使用 SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED 的代码。

早在推出行级版本(row level versioning),又称快照隔离之前,NOLOCK 提示就经常需要避免阻塞和死锁。然而,使用它会有一些风险。通过设计,运行NOLOCK 的查询可以读取在事务中改变的数据。这代表着决策可以基于最终回滚的事务。同样,决策也可以基于局部更新,例如使用一个记录的新版本和另一个相关记录的旧版本。

由于这些原因,一般不赞成在新的数据库中使用NOLOCK(和READ UNCOMMITTED)。然而,我们不能简单地将现有的数据库转移到行级版本。虽然它可以在不发生脏读的情况下解决阻塞问题,但是它还是需要增加tempdb 使用的成本。

Brent Ozar Unlimited 提供了一款通知服务,当问题解决的时候通知所有 DBA。你可以在 sqlserverupdates.com 报名。

查看英文原文 NOLOCK is Broken in SQL Server 2014 SP1


感谢张龙对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-06-01 19:001202
用户头像

发布了 218 篇内容, 共 64.8 次阅读, 收获喜欢 75 次。

关注

评论

发布
暂无评论
发现更多内容

人工智能降噪:topaz photo ai 操作系统 topaz photo ai中文破解安装包

Rose

智能降噪 Topaz Photo AI系统要求 Topaz Photo AI破解版

探秘Kubernetes:在本地环境中玩转容器技术

SEAL安全

Kubernetes 容器 云原生 本地环境

就业寒冬,我是如何拿到5个offer的(附面试题)

霍格沃兹测试开发学社

GaussDB(for Redis)特性揭秘:多租户管理

YG科技

什么是Ubuntu LTS?与常规版本的区别

百度搜索:蓝易云

云计算 Linux ubuntu 运维 云服务器

topaz gigapixel ai怎么安装?Topaz Gigapixel AI激活安装详细教程

Rose

topaz gigapixel ai破解版 无损放大图像 Topaz Gigapixel AI 安装

Windows自定义后台进程并设置为开机启动

GousterCloud

windows 自定义 后台进程 开机启动

GaussDB(for Redis)助力金智教育业务数字化,增效降本双赢

YG科技

水杉3D建模工具:Metasequoia破解版 含永久注册码

Rose

水杉3D建模 Metasequoia 4 破解版 Metasequoia 4注册码

3D数字绘画和雕刻软件:Mudbox 2025 新功能介绍及安装教程

Rose

Mudbox 2025下载 Mudbox 2025新功能 Mudbox 2025安装教程 3D数字雕刻

2024多云管理平台CMP排名看这里!

行云管家

云计算 云服务 多云管理 云管

选择KV数据库最重要的是什么?

YG科技

电源噪声的起因及危害

攻城狮Wayne

噪声 电源

hal库中串口常用函数介绍

百度搜索:蓝易云

云计算 Linux 运维 云服务器 HAL

Elmedia Video Player Pro 支持AirPlay的苹果mac视频播放器

Rose

媒体播放器 Mac软件 视频播放器 Elmedia Video Player Pro

Maya 2025下载 玛雅maya2025新功能介绍

Rose

Maya 2025中文版 Maya 2025下载 三维动画软件 玛雅2025新功能 玛雅2025破解

新体验、高效能,星河零代码产线加速带动产业新质生产力

飞桨PaddlePaddle

百度 BAIDU 百度飞桨 产品更新 PaddleX

守护更多女性健康,华为云GeminiDB助力美柚完成数据库高效稳定迁移

YG科技

C#中使用IntPtr.Size属性来判断当前系统是32位还是64位

百度搜索:蓝易云

C# 云计算 Linux 运维 云服务器

Disk Drill for mac专业直装版 苹果电脑数据恢复工具下载

Rose

Disk Drill下载 Disk Drill mac 数据恢复mac版

实现以图搜货功能,淘宝API开发实战分享

tbapi

图片搜索接口 以图搜货接口 拍立淘接口

cad设计绘图Autodesk AutoCAD 2025完整版中文破解工具

Rose

AutoCAD 2025 CAD2025

GaussDB(for Redis)游戏实践:玩家下线行为上报

YG科技

8款AI视频生成产品实测,谁将成为中国Sora?

自象限

学习aop以及nginx

百度搜索:蓝易云

nginx Linux 运维 aop 云服务器

【论文速读】| 通过间接提示注入危害现实世界中的LLM集成应用

云起无垠

Chatbot具体需要如何搭建

百度搜索:蓝易云

云计算 Linux 运维 chatbot 云服务器

Hazel for Mac自动化清理 含Hazel许可证

Rose

Hazel for Mac Hazel许可证 Hazel for Mac破解版 自动化文件整理

AutoCAD LT 2025介绍(精简版cad2025)及中文版安装教程

Rose

Autodesk AutoCAD LT 2025 cad2025破解版 AutoCAD LT 2025介绍

GaussDB(for Redis)特性揭秘:大key治理

YG科技

标准库unsafe:带你突破golang中的类型限制

华为云开发者联盟

Go golang 开发 华为云 华为云开发者联盟

SQL Server 2014 SP1的NOLOCK指令中断_DevOps & 平台工程_Jonathan Allen_InfoQ精选文章