揭秘SQL Server 2014有哪些新特性(1)-内存数据库

简介

SQL Server 2014提供了众多激动人心的新功能,但其中我想最让人期待的特性之一就要算内存数据库了。去年我再西雅图参加SQL PASS Summit 2012的开幕式时,微软就宣布了将在下一个SQL Server版本中附带代号为Hekaton的内存数据库引擎。现在随着2014CTP1的到来,我们终于可以一窥其面貌。

内存数据库

在传统的数据库表中,由于磁盘的物理结构限制,表和索引的结构为B-Tree,这就使得该类索引在大并发的OLTP环境中显得非常乏力,虽然有很多办法来解决这类问题,比如说乐观并发控制,应用程序缓存,分布式等。但成本依然会略高。而随着这些年硬件的发展,现在服务器拥有几百G内存并不罕见,此外由于NUMA架构的成熟,也消除了多CPU访问内存的瓶颈问题,因此内存数据库得以出现。

内存的学名叫做Random Access Memory(RAM),因此如其特性一样,是随机访问的,因此对于内存,对应的数据结构也会是Hash-Index,而并发的隔离方式也对应的变成了MVCC,因此内存数据库可以在同样的硬件资源下,Handle更多的并发和请求,并且不会被锁阻塞,而SQL Server 2014集成了这个强大的功能,并不像Oracle的TimesTen需要额外付费,因此结合SSD AS Buffer Pool特性,所产生的效果将会非常值得期待。

SQL Server内存数据库的表现形式

在SQL Server的Hekaton引擎由两部分组成:内存优化表和本地编译存储过程。虽然Hekaton集成进了关系数据库引擎,但访问他们的方法对于客户端是透明的,这也意味着从客户端应用程序的角度来看,并不会知道Hekaton引擎的存在。如图1所示。

图1.客户端APP不会感知Hekaton引擎的存在

首先内存优化表完全不会再存在锁的概念(虽然之前的版本有快照隔离这个乐观并发控制的概念,但快照隔离仍然需要在修改数据的时候加锁),此外内存优化表Hash-Index结构使得随机读写的速度大大提高,另外内存优化表可以设置为非持久内存优化表,从而也就没有了日志(适合于ETL中间结果操作,但存在数据丢失的危险)

下面我们来看创建一个内存优化表:

首先,内存优化表需要数据库中存在一个特殊的文件组,以供存储内存优化表的CheckPoint文件,与传统的mdf或ldf文件不同的是,该文件组是一个目录而不是一个文件,因为CheckPoint文件只会附加,而不会修改,如图2所示。

图2.内存优化表所需的特殊文件组

我们再来看一下内存优化文件组的样子,如图3所示。

图3.内存优化文件组

有了文件组之后,接下来我们创建一个内存优化表,如图4所示。

图4.创建内存优化表

目前SSMS还不支持UI界面创建内存优化表,因此只能通过T-SQL来创建内存优化表,如图5所示。

图5.使用代码创建内存优化表

当表创建好之后,就可以查询数据了,值得注意的是,查询内存优化表需要snapshot隔离等级或者hint,这个隔离等级与快照隔离是不同的,如图6所示。

图6.查询内存优化表需要加提示

此外,由创建表的语句可以看出,目前SQL Server 2014内存优化表的Hash Index只支持固定的Bucket大小,不支持动态分配Bucket大小,因此这里需要注意。

与内存数据库不兼容的特性

目前来说,数据库镜像和复制是无法与内存优化表兼容的,但AlwaysOn,日志传送,备份还原是完整支持。

性能测试

上面扯了一堆理论,大家可能都看郁闷了。下面我来做一个简单的性能测试,来比对使用内存优化表+本地编译存储过程与传统的B-Tree表进行对比,B-Tree表如图7所示,内存优化表+本地编译存储过程如图8所示。

图7.传统的B-Tree表

图8.内存优化表+本地编译存储过程

因此不难看出,内存优化表+本地编译存储过程有接近几十倍的性能提升。

时间: 2024-12-21 14:16:01

揭秘SQL Server 2014有哪些新特性(1)-内存数据库的相关文章

揭秘SQL Server 2014有哪些新特性(1)-内存数据库_MsSql

简介    SQL Server 2014提供了众多激动人心的新功能,但其中我想最让人期待的特性之一就要算内存数据库了.去年我再西雅图参加SQL PASS Summit 2012的开幕式时,微软就宣布了将在下一个SQL Server版本中附带代号为Hekaton的内存数据库引擎.现在随着2014CTP1的到来,我们终于可以一窥其面貌. 内存数据库     在传统的数据库表中,由于磁盘的物理结构限制,表和索引的结构为B-Tree,这就使得该类索引在大并发的OLTP环境中显得非常乏力,虽然有很多办法

揭秘SQL Server 2014有哪些新特性(2)-固态硬盘 Buffer Pool(缓冲池) 扩展_MsSql

简介     SQL Server 2014中另一个非常好的功能是,可以将SSD虚拟成内存的一部分,来供SQL Server数据页缓冲区使用.通过使用SSD来扩展Buffer-Pool,可以使得大量随机的IOPS由SSD来承载,从而大量减少对于数据页的随机IOPS和PAGE-OUT. SSD AS Buffer Pool     SSD是固态硬盘,不像传统的磁盘有磁头移动的部分,因此随机读写的IOPS远远大于传统的磁盘.将SSD作为Buffer Pool的延伸,就可以以非常低的成本巨量的扩充内存

揭秘SQL Server 2014有哪些新特性(4)-原生备份加密_MsSql

SQL Server 2014 CTP2之后公布了一项针对备份的特性,那就是原生备份加密.考虑到之前网络上影响很坏的数据库泄漏事件,本质上都是数据库备份泄漏给第三方导致,SQL Server的原声数据备份可以使得即使备份本身被盗,在没有加密证书的情况下也无法使用,这有效的解决了上述数据泄漏问题.原先的解决方案     在SQL Server 2014之前,如果希望实现对备份实现加密,会通过如下两种方式之一实现: 使用透明数据加密(TDE)加密整个数据库,从而使得备份和事务日志也会被加密 使用第三

揭秘SQL Server 2014有哪些新特性(3)-可更新列存储聚集索引_MsSql

简介      列存储索引其实在在SQL Server 2012中就已经存在,但SQL Server 2012中只允许建立非聚集列索引,这意味着列索引是在原有的行存储索引之上的引用了底层的数据,因此会消耗更多的存储空间,但2012中的限制最大的还是一旦将非聚集列存储索引建立在某个表上时,该表将变为只读,这使得即使在数据仓库中使用列索引,每次更新数据都变成非常痛苦的事.SQL Server 2014中的可更新聚集列索引则解决了该问题. 可更新聚集列存储索引?     聚集列存储索引的概念可以类比于

揭秘SQL Server 2014有哪些新特性(4)-原生备份加密

SQL Server 2014 CTP2之后公布了一项针对备份的特性,那就是原生备份加密.考虑到之前网络上影响很坏的数据库泄漏事件,本质上都是数据库备份泄漏给第三方导致,SQL Server的原声数据备份可以使得即使备份本身被盗,在没有加密证书的情况下也无法使用,这有效的解决了上述数据泄漏问题.原先的解决方案 在SQL Server 2014之前,如果希望实现对备份实现加密,会通过如下两种方式之一实现: 使用透明数据加密(TDE)加密整个数据库,从而使得备份和事务日志也会被加密 使用第三方备份加

SQL Server 2005 SP1的新特性

SQL Server 2005 Service Pack 1为数据库管理员们提供了数据库镜像.支持SAP NetWeaver 商务智能.支持全文本和额外功能的准产品,减轻了他们充分利用一个全新的数据库管理系统的痛苦.我们最近采访了微软的产品和项目,询问了他们一些有关新的特性和在Community Technology Preview过程中出现的相关问题的话题.以下是我们对微软的Michael Raheem, Tim Tow, Herain Oberoi ,和 Grant Culbertson四位

SQL Server 2014的原生备份加密新特性

SQL Server 2014 CTP2之后公布了一项针对备份的特性,那就是原生备份加密.考虑到之前网络上影响很坏的数据库泄漏事件,本质上都是数据库备份泄漏给第三方导致,SQL Server的原声数据备份可以使得即使备份本身被盗,在没有加密证书的情况下也无法使用,这有效的解决了上述数据泄漏问题. 原先的解决方案 在SQL Server 2014之前,如果希望实现对备份实现加密,会通过如下两种方式之一实现: 使用透明数据加密(TDE)加密整个数据库,从而使得备份和事务日志也会被加密 使用第三方备份

SQL Server 2014 BI新特性(一) Excel下的Data Explorer

Data Explorer是即将发布的SQL Server 2014里的一个新特性,借助这个特性讲使企业中的自助式的商业智能变得更加的灵活,从而也降低了商业智能的门槛. 此文是在微软商业智能官方博客里找到的,我在这里不仅将其简单的翻译过来,同时也加入了一些个人的感悟和笔记,如果你对原文感兴趣可以点击下面的链接查看原文; http://blogs.msdn.com/b/microsoft_business_intelligence1/archive/2013/05/15/5-things-you-

SQL Server 2014新特性Data Explorer ForExcel的特点

Data Explorer是即将发布的SQL Server 2014里的一个新特性,借助这个特性讲使企业中的自助式的商业智能变得更加的灵活,从而也降低了商业智能的门槛. Data Explorer Preview for Excel提供了一种新的方式来为自助式的商业智能发现数据,整合数据以及提炼数据.如果你对它还比较陌生,那么如下五点将使你了解它如何提升你在Excel中处理数据的方法. 借助Data Explorer,你可以: 1. 发现数据 Data Explorer带来了在Excel中数据检