SQL Server 2012新功能巡礼:列存储索引

日期: 2011-05-15 作者:Roman Rehak翻译:孙瑞 来源:TechTarget中国 英文

相信DBA对于SQL Server已经是再熟悉不过了,他们还根据每个版本不同的特性给前三个版本贴上了相应的标签。比如SQL Server 2005被人们称作是开发者版本,SQL Server 2008是DBA版本,而去年发布的SQL Server 2008 R2由于它丰富的数据分析、报表工具(PowerPivot、SSAS、Report Builder),被看作是SQL Server的BI版本。   微软在去年11月的SQL Server专家大会上发布了下一版本SQL Server Denali的第一个社区技术预览版本(CTP)。现在看来,为每个版本贴上标签的传统很难延续下去了,因为SQL S……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相信DBA对于SQL Server已经是再熟悉不过了,他们还根据每个版本不同的特性给前三个版本贴上了相应的标签。比如SQL Server 2005被人们称作是开发者版本,SQL Server 2008是DBA版本,而去年发布的SQL Server 2008 R2由于它丰富的数据分析、报表工具(PowerPivot、SSAS、Report Builder),被看作是SQL Server的BI版本。

  微软在去年11月的SQL Server专家大会上发布了下一版本SQL Server Denali的第一个社区技术预览版本(CTP)。现在看来,为每个版本贴上标签的传统很难延续下去了,因为SQL Server Denali全面的特性针对了各种IT人员。微软为我们介绍的新特性使得用户开始对测试评估跃跃欲试,所以在今年发布正式商业版本之前,你一定要做好升级的准备。

  列存储索引

  在推出Denali之前,微软代号为Apollo的项目就已经将列存储索引功能添加到PowerPivot之中,并嵌入了他们的数据库引擎。微软提供的列存储索引技术是基于一个叫做VertiPaq的数据库架构的,它同传统的索引相比能够为数据库提供较大程度上的性能提升。

  在传统的索引中,每一行的索引数据是存储在单一页面的,而每一列的数据是分散在所有的页面当中的。那么列存储索引会将每一列的数据集合起来,这样每个页面中包含的数据都是来自于一列的。此外,每一列的索引数据都进行了压缩,由于列中的数据会包含许多相同的值,所以这里所谈到的压缩比将会是很大的。这就意味着索引中的页面变得更少了,而当你抽取数量很小的列时,需要扫描的页面也减少了。

  由于SQL Server中每个实例存储的数据都不一样,所以很难说在实际应用中,这样的列存储索引会快多少。至少微软方面称几倍甚至几十倍都有可能。

  站在业务角度来看,这个功能将改变用户使用数据仓库的方式。传统意义上,数据仓库的表都是非常大的,很难实现实时的查询,因此它们不适合做ad hoc查询。这些表中的数据需要进行聚集,需要构建cube或者生成报表并立即进行缓存才可以完成快速的反应。

  比如说你的账户有1000块钱,取出来500然后立即去网上查询,有时你会发现电脑中显示的还是1000的余额。银行的数据集是十分庞大的,因此它需要一些时间来对你的账户信息进行刷新,要求实现实时的刷新是不切实际的,甚至我们可以说是不可能的。与此类似,数据仓库往往需要在晚上跑ETL任务,进行数据的更新和聚集。

  但是列存储索引理论上是可以在几秒钟之内就完成之前需要几分钟甚至几小时的查询的,这时你的业务就可以转向实时查询了。技术的革新意味着你不需要在等上几天来完成数据的整理和聚集了,至少你的业务用户和公司决策者可以更快速地利用他们需要的数据。

    想要了解列存储索引的具体技术细节,请点击查看

翻译

孙瑞
孙瑞

相关推荐