如果你是一个资深的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
分享到:
相关推荐
SQL Server 2012提供了两种定义审计的方式:SQL Server Management Studio (SSMS) 和 Transact-SQL。在SSMS中,用户可以通过图形界面创建审计和审计规范,而Transact-SQL则适合自动化或更复杂的设置。审计的创建过程...
[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 Server的一个轻量级版本,即SQL Server 2012 Express LocalDB。 **什么是LocalDB?** LocalDB是SQL Server Express的一个特殊版本,设计用于满足开发者对快速、无管理数据库的...
SQL Server 2012驱动包是用于连接Java应用程序与Microsoft SQL Server数据库的关键组件。它包含了一组Java Database Connectivity (JDBC)驱动程序,使得Java开发者能够利用Java编程语言访问和操作SQL Server 2012...
2012版的驱动程序主要针对SQL Server 2012及后续的兼容性进行优化,支持最新的特性和功能。 描述中提到的“Navicat工具”是一款流行的数据库管理工具,它允许用户通过图形界面连接并管理多种类型的数据库,包括SQL ...
《SQL Server 2012 从入门到精通》是一本深入浅出的教程,旨在帮助初学者和有一定经验的数据库管理员全面理解并熟练掌握Microsoft SQL Server 2012的使用。这本书以实例为引导,使学习过程更加生动且易于理解。在SQL...
这个压缩包包含了x64和x86两个版本的客户端组件,以适应不同操作系统平台的需求。以下是对SQL Server 2012 Native Client的详细解释: 1. **SQL Server Native Client的介绍**: SQL Server Native Client是一个...
Microsoft® SQL Server® 2012 Microsoft® SQL Server® 2008 R2 Microsoft® SQL Server® 2008 Microsoft® SQL Server® 2005 Microsoft® SQL Azure 返回页首返回页首 说明 JDBC Driver 的 Microsoft ...
SQL Server 2012 64位,用于数据库开发、SQL Server 2012 64位,用于数据库开发SQL Server 2012 64位,用于数据库开发SQL Server 2012 64位,用于数据库开发SQL Server 2012 64位,用于数据库开发
这个组件包含了用于与SQL Server交互的.NET类库,使得开发者可以在.NET环境中使用C#、VB.NET等编程语言执行SQL Server特定的操作,如操作空间数据、XML数据、以及利用存储过程等功能。 描述中的“百度好久下到的,...
本文将详细讲解 Sql Server 2012 双机热备方案的实操过程,包括环境部署、主服务器发布部署和从服务器订阅部署三个部分。 一、环境部署 在开始双机热备之前,需要进行环境部署。环境部署的主要步骤包括: 1. 启用...
此组件是专门为SQL Server设计的,能够提供比通用数据访问接口更高的性能和功能。 **安装问题与Win10兼容性** 在描述中提到,有时在Windows 10操作系统中,使用Navicat这样的数据库管理工具远程连接到SQL Server时...
本文档提供了 Windows Server 2012 + SQL Server 2016 安装的详细指南,旨在帮助用户快速安装和配置这两个软件。本文档将分步骤地指导用户安装 Windows Server 2012 和 SQL Server 2016,并提供了安装过程中的重要...
此资源为sql server 2012 R2版本 内部版本号2200,安装后可直接运行
《Microsoft SQL Server 2012 Analysis Services 高级教程》是针对数据库管理员、数据分析师以及IT专业人士的一本深入指南,旨在帮助读者掌握SQL Server 2012中的Analysis Services(简称SSAS)的各项高级功能。...
第3版、SQL Server、SQL Server 2012 进行深入解析与性能优化
NetFx3 是 Windows Server 2012 R2 中的一个重要功能,它提供了 .NET Framework 3.5 的支持。SQL Server 2012 的安装需要依赖 NetFx3 功能,因此在安装过程中如果无法启用 NetFx3 功能,安装程序将会中断并抛出错误...
在"SQL Server 2012 数据库技术及应用第四版"中,我们可能会学习到以下几个关键知识点: 1. **SQL Server 2012的新特性**:理解SQL Server 2012相比前代版本的改进,如AlwaysOn高可用性解决方案、Columnstore索引、...
Reporting Service是一个非常好用的制作报表的sql server 数据库平台,本例子是通过sql server 2012,使用Reporting Service 2012制作报表。