如何用AI技术降噪? QCon 广州“音视频架构实践”专场给你答案! 了解详情
写点什么

SQL Server 2014 中的锁无关写操作

  • 2013 年 9 月 25 日
  • 本文字数:893 字

    阅读完需:约 3 分钟

2012 年带有 2TB DRAM 的商业化双路服务器面世。有如此可观的内存可以使用,Microsoft 认为是时候认真考虑新的数据库机制将工作集完全放到内存中了。这种想法的结果便是 SQL Server 2014,它有一个新功能称之为“内存优化表(Memory Optimized Tables)”或者“内存 OLTP”。

内存优化表不仅仅是恰好适合在内存中使用的表。它是一种全新的存储和查询子系统,围绕着在任何时候都必须保留在内存中的表而设计。这样就能够做一些有趣的优化。

这种新的表类型所提供的一个优化是完全锁无关(Lock-Free)的写操作。Microsoft 的 Kalen Delaney 声称:

在访问内存优化表的时候,SQL Server 会使用完全乐观的多版本并发控制。尽管之前 SQL Server 被描述为使用 SQL Server 2005 中引入的基于快照的隔离级别支持乐观的并发控制,但是这些所谓的乐观方法在执行数据修改操作的时候确实会获取锁。而对于内存优化表而言,并不会获取锁,因此也不会有阻塞等待。

需要注意的是,“没有等待锁”和“没有等待”之间有一个区别。在写入事务日志的时候依然可能会产生等待。

内存优化表默认是持久的。尽管你可以关闭持久化选项,但是在正常的环境下你将会喜欢获得和传统的基于磁盘的表一样的 ACID 保证。除了标准的事务日志之外,还要创建一个单独的使用“CONTAINS MEMORY_OPTIMIZED_DATA”选项标记的文件组。

非持久或者“SCHEMA_ONLY”的表不仅仅是不持久化。这些表对任何 I/O 都是完全自由的。如果重启了服务器,那么所有的数据都会丢失。这让它成为了一个理想的候选方案,可以用于非规范化的数据缓存、瞬态使用的会话(例如来自于 ASP.NET 的会话)以及其他能够容易创建的数据。

内存优化表在涉及到数据类型的时候是受限制的。涉及到“在行外”储存数据的所有内容都会被禁止。包括二进制、xml、文本以及 varChar(max)这样的类型。所有的内容都必须符合在标准的行大小(8060 个字节)之内的限制。

另外,你不能使用 varChar 列作弊。行大小是根据可变长度列的最大大小计算的,不是像传统表那样使用最小值。但是至少在使用它的时候你不需要担心数据截断。

明天我们将会介绍内存优化表中的索引。

查看英文原文 Lock-Free Writes in SQL Server 2014

2013 年 9 月 25 日 09:451169
用户头像

发布了 321 篇内容, 共 109.6 次阅读, 收获喜欢 12 次。

关注

评论

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

迅捷录屏大师 Tech Support

凌天一击

gitlab无法通过ssh拉代码

阿呆

#GitLab

TRTC代码示例文档集合完毕!哪里不会点哪里!

腾讯云音视频

腾讯云 音视频 API sdk

FastApi-04-请求体-1

Python研究所

FastApi 8月日更

关于Spring注解开发教程,打包全送你

华为云开发者联盟

Java spring 容器 注解 组件

ironSource 在 2021 ChinaJoy 举办多场活动赋能中国开发者

DataPipeline荣膺CFS第十届财经峰会“2021数字化转型推动力奖”

DataPipeline数见科技

大数据 数据融合 数据管理

mybatis源码分析

普普通通程序员

啃书一年多的我,推荐Python初学者不要在乱看书了,有这三本就妥妥的

冇先生

企业安全运维重点是什么?如何做?

行云管家

数据库 运维 企业管理 企业运维 安全运维

【吐血整理】大牛耗时一年最佳总结,让你的app体验更丝滑

欢喜学安卓

android 程序员 面试 移动开发

FIL分币系统源码|分销商城功能开发模式介绍

Geek_23f0c3

fil Fil算力挖矿分币系统 Filecoin分销商城

你使用的SimpleDateFormat类还安全吗?

华为云开发者联盟

Java 安全 线程 高并发 SimpleDateFormat类

Linux 网络管理技术 OSI 七层模型和 TCP/IP 四层模型

学神来啦

Linux 运维 IP

【秋招面试专题解析】成功入职头条月薪35K

欢喜学安卓

android 程序员 面试 移动开发

态势感知一屏可视:数治安全,智理未来

一只数据鲸鱼

网络安全 数据可视化 数据监测 数字孪生

基于 Apache APISIX,新浪微博API网关的定制化开发之路

Apache APISIX 中国社区

Apache 网关 APISIX 微博

区块链技术如何有效应对气候变化

CECBC

立体车库数据管理被卡脖子?织信车库管理系统全面掌控车辆新状况

优秀

低代码

当企业遭遇分布式拒绝服务 (DDoS) 攻击时,第一时间该如何进行操作?

九河云安全

频繁出现的分布式拒绝服务 (DDoS) 攻击​,有什么办法可以抵御吗?

九河云安全

「跨链网关的模块化进程」插件机制演化

趣链科技

【性能优化实战】Android架构组件Room功能详解

欢喜学安卓

android 程序员 面试 移动开发

分布式拒绝服务 (DDoS) 攻击对企业运维造成的影响分析

九河云安全

android 工作资料!职场中的中年危机

欢喜学安卓

android 程序员 面试 移动开发

如何用EasyRecovery恢复U盘内损坏的数据

淋雨

文件恢复 硬盘数据恢复 Easyrecivery

编译脚本:编写CMakeFile(一)

正向成长

CMakeFile

下一个颠覆的领域:区块链如何影响审计行业?(下)

CECBC

双非本化学跨专业,投岗阿里/滴滴后端三面,最终拿下offer

编程菌

Java 编程 程序员 面试 计算机

「云智公开课」百度沧海·存储

「云智公开课」百度沧海·存储

SQL Server 2014中的锁无关写操作_架构_Jonathan Allen_InfoQ精选文章