如果你是一个资深的SQL Server DBA,那么关于它的每一个功能你应该都会接触过至少一次。事实上,SQL Server发展到现在,它的根基并没有变,一个大树上长出纷繁的枝叶。今天的这篇文章,我将在这些“枝叶”中挑选几个我认为值得关注的,来仔细聊一聊。列存储索引(Columnstore Indexes)和Hekaton内存数据库是新版SQL Server中很重要的两个功能,它们都是跨时代的技术革新,能够大大提升SQL Server数据库的性能。
列存储索引
列存储索引是SQL Server 2012版本中自带的功能,它的前身是开发用来进行PowerPivot内存存储的功能。列存储同传统的关系型数据库中行存储有着本质上的不同,数据按照列布局的方式存储,能够将上百万个列值全部聚合到一个blob结构当中。同时这个结构还能提供让人意想不到的数据压缩比。
快速批处理模式还能够加速SQL Server 2012数据库的查询过程。正如David Dewitt博士在两年前的SQL PASS大会上所做的演示,连续列值的紧密结构,通过将数据在缓存和CPU之间的来回移动次数减小到最小,从而能够充分利用现代CPU技术所提供的优势。
当然,列存储索引也并非无懈可击,它有一个非常大的局限性——只读。这意味着表索引也是只读的。所以任何一个拥有列存储索引的表,它是不允许任何插入、更新以及删除操作的。要对数据进行修改,就必须先删除列存储索引限制,然后再对数据进行增删改,最后重建列存储索引。由此可以看出,这对于OLTP系统的用户友好度是有欠缺的。因此可以说,列存储索引仅对处理数据仓库和OLAP负载有优势。在下一版本的SQL Server中,微软已经承诺进行改进,去掉更新数据的限制并允许进行列存储的聚集索引(clustered index)。
对于这个功能,我曾经也做过一些实验。我发现当查询的性质与列存储相吻合的时候,它的性能提升是显而易见的。一般来说,一个表中的列越多,列存储索引的施展空间就越大,它能够避免SQL Server去读取更多的索引部分。在另一种情况下,针对相对列数较少的实体-属性值表,所得到的结果就要分开来说。汇总查询要快得多,从300秒降到了3秒钟。但是返回一个小行集的所有列时,它起到的作用就不大。
Hekaton内存数据库
当列存储索引将数据仓库应用性能提升一个档次时,微软的另一个项目正在将目标瞄准OLTP系统,它就是Hekaton内存数据库。网站、邮件服务器、ERP系统以及订单录入系统等,它们每一秒钟执行着大量的交易(一笔交易通常是比较小的),而这些系统正是Hekaton的目标群体。Hekaton事实上算是SQL Server的一个扩展,可以把它看做是一个内存数据库,它将在下一版本的SQL Server中正式发布,而目前的发布日程还没有最终公布。
Hekaton先从存储在磁盘中的表入手,将它们完全放入到RAM当中。这意味着它将限制在较小的表之上,或者可以设计一个结构将活跃数据与历史数据进行分割。随着硬件设备的不断更新,RAM变得越来越大,从500 GB到上TB不等,对于存储应用系统的活跃数据,这么大的RAM是绝对够用了,这也是Hekaton应运而生的一个原因。
在Hekaton系统中,DBA能使用T-SQL进行编码,这让它的使用门槛降低了许多。但要注意的是,与传统T-SQL还是有所不同,Hekaton代码将编译成原始的机器语言而且不带解释器。T-SQL在数据操控方面很好用,但是辅助业务逻辑不是它的强项;本机编译能够对其进行良好的提速效果。
随着服务器的处理器核心越来越多,进行纵向扩展时的资源争用问题将会变得更加严重。Hekaton通过部署自身的锁定机制来避免这一问题,它对交易进行优化,来更加适应内存数据库,能够让多个交易同步地运行。然而,它的限制是如何将Hekaton表和其他表进行联合。
通过内存数据处理、编译代码以及新的并发控制机制,Hekaton最初的基准测试数据相当吸引人。在SQL PASS 2012大会上,我看到开发人员的现场演示,其中吞吐量提升了25倍,是25倍,而不是25%哦!这只是Hekaton的初亮相,最终微软会给出我们怎样的答案,我会拭目以待。
原文链接:http://www.searchdatabase.com.cn/showcontent.aspx
分享到:
相关推荐
[Microsoft Press] Microsoft SQL Server 2012 技术内幕 (英文版) [Microsoft Press] Microsoft SQL Server 2012 Internals (E-Book) ☆ 图书概要:☆ Dive deep inside the architecture of SQL Server 2012 ...
sql server2012下载链接。sql server2012是专业免费的关系数据库管理工具,他为你提供各种数据库并建立联系进行沟通,而且还可以用来执行各种各样的操作。
SQL Server 2012驱动包
SQL Server 2012新功能简介
关于sql server 2012 CDC 使用数据库增量数据的提取
spring框架下使用德鲁伊连接池配置连接sqlServer2012,需要此包sqljdbc.jar下的com.microsoft..sqlserver.jdbc.Driver
SQL Server 2012 R2.ios 可直接解压或虚拟光驱安装 见下载网盘.txt
SQL Server MVP最新作品,添加了大量关于SQL Server 2012的新内容,帮助DBA利用SQL Server 2012的许多新功能简化工作,高效管理SQL Server的提示、技巧和解决方案 教授读者成功管理SQL Server 2012所需的技能,你将会...
此资源为sql server 2012 R2版本 内部版本号2200,安装后可直接运行
第3版、SQL Server、SQL Server 2012 进行深入解析与性能优化
SQL Server 2012 SP1 64位 简体中文企业版.iso 安装包
VS 2017 打开 Net项目报错“web项目需要安装SQL Server 2012 Express LocalDB”,安装后就好了。
SQL server 2012 双机热备实操,配图详细 一、环境部署 二、主服务器发布部署 三、从服务器订阅部署
Microsoft SQL Server 2012 Analysis Services 高级教程 pdf
eclipse使用jdbc方式连接sql server 2012数据库 调用存储过程
microsoft sql server 2012新特性(上、下),针对microsoft sql server 2012做了全面介绍,与大家分享。
SQL Server 2012从零开始学数据库管理开发教程
SQLPrompt v5.3.0.3支持SQLServer2012智能提示
数据库原理及应用教程(第四版)人民邮电出版社 SQL Server 2012 实验报告
Windows Server 2012 + SQL Server 2016安装必读