SQL server 2014 内存表特性概述

内存优化表是SQL server2014版本中推出的新特性之一。也是基于create table创建的,只不过是驻留在内存中表。从内存读取表中的行和将这些行写入内存。 整个表都驻留在内存中。表数据的另一个副本维护在磁盘上,但仅用于持续性目的。内存中 OLTP 与 SQL Server 集成,以便在所有方面(如开发、部署、可管理性和可支持性)提供无缝体验。 内存优化表中的行是版本化的。 这意味着表中的每行都可能有多个版本。 所有行版本均维护在同一个表数据结构中。 本文主要描述SQL server 2014内存表的相关特性。

一、基本特性

    是一张持续驻留在内存中的表。
    使用基于行版本化特性(等同于Oracle MVCC),需要维护每一个行的多个不同版本。
    行版本控制用于实现对同一行的并发读取和写入,注意此处是并发。
    如表tb1有三行:r1、r2 和 r3。 r1 有三个版本,r2 有两个版本,r3 有四个版本。
    同一行的不同版本不必占用连续的内存位置。 不同的行版本可分散到整个表数据结构中。

二、持久化特性

    支持事务(ACID)原则的完全持久化表,因为磁盘上会有相应的副本。
        使用延迟事务提交写入磁盘。缺点是丢失已提交但未保存到磁盘的事务。
    非持久的内存优化表,不记录这些表的日志且不在磁盘上保存它们的数据。掉电丢失,等同mysql memory引擎。     

三、性能与可伸缩

    使用本机编译的存储过程获得最佳性能,解释性TSQL一般。
    对于基于复杂存储过程实现逻辑,且应用较少调用的的场景,表现优异。
    内存表哈希索引高于非聚集索引,内存表非聚集索引性能高于磁盘表非聚集索引。
    解决了IO瓶颈,缺点是需要增大内存开销。
    避免了闩锁与旋转锁争用。
    基于乐观并发控制形式来实现所有事务隔离级别,解决了读阻塞写的问题。Oracle是用MVCC及undo来搞定。

四、内存表图示描述

下图为内存表调用方式描述图

下图为本文草画的流程图

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏性能与架构

mongodb与sql在查询上的区别

之前在“这个场景更适合使用NoSQL”文章中通过和SQL的对比 介绍了NOSQL数据存储结构的特点,一位朋友看后希望再介绍下NOSQL查询方面的特点 这里以N...

3365
来自专栏小狼的世界

Curl操作Elasticsearch的常用方法

Elasticsearch对于文档操作,提供了以下几种API,本文就说明如何使用curl方式来调用这些API。

1592
来自专栏Danny的专栏

【SSH快速进阶】——探索Hibernate对象的三种状态:Transient、Persistent、Detached

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/...

1062
来自专栏性能与架构

MySql缓存中的关键项

MySql的设计中大量使用了缓存,下面这些缓存配置项是应该熟知的 key_buffer_size key_buffer_size是设置MyISAM表索引的缓冲区...

4075
来自专栏xingoo, 一个梦想做发明家的程序员

Elasticsearch 数据搜索篇·【入门级干货】

ES即简单又复杂,你可以快速的实现全文检索,又需要了解复杂的REST API。本篇就通过一些简单的搜索命令,帮助你理解ES的相关应用。虽然不能让你理解ES的原...

2767
来自专栏菩提树下的杨过

mybatis 3.x 缓存Cache的使用

mybatis 3.x 已经支持cache功能了,使用很简单,在mappper的xml文件里添加以下节点: 1 <mapper namespace="com....

23010
来自专栏Golang语言社区

一个go语言实现的短链接服务

一个go语言实现的短链接服务 首先,博客转移到 wusay.org 了,去年没交费,博客都没了。。。刚刚恢复过来,以前的文章没了,慢慢补吧。 什么是短链接服务 ...

46215
来自专栏Spring相关

Tomcat改端口号;修改访问路径,以及配置Context 标签以后Tomcat启动不了

docBase:war包的名称(注意 这里如果找不到相应的war包,tomcat启动不了)

3422
来自专栏Golang语言社区

一个go语言实现的短链接服务

一个go语言实现的短链接服务 首先,博客转移到 wusay.org 了,去年没交费,博客都没了。。。刚刚恢复过来,以前的文章没了,慢慢补吧。 什么是短链接服务 ...

65610
来自专栏逸鹏说道

REDIS操作命令小结

缘由: 最初学过一段时间的Redis的使用,但是后来长时间没有接触,就又忘了,往复这么弄了几次,感觉比较浪费时间,所以今天决定整理一下Redis的常见操作命令,...

3605

扫码关注云+社区

领取腾讯云代金券