相信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中国
相信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任务,进行数据的更新和聚集。
但是列存储索引理论上是可以在几秒钟之内就完成之前需要几分钟甚至几小时的查询的,这时你的业务就可以转向实时查询了。技术的革新意味着你不需要在等上几天来完成数据的整理和聚集了,至少你的业务用户和公司决策者可以更快速地利用他们需要的数据。
想要了解列存储索引的具体技术细节,请点击查看
作者
翻译
相关推荐
-
OpenWorld18大会:Ellison宣布数据库的搜寻和破坏任务
在旧金山举行的甲骨文OpenWorld 2018大会中,甲骨文首席技术官(CTO)兼创始人Larry Elli […]
-
ObjectRocket着力发展Azure MongoDB服务
MongoDB吸引了微软公司的注意力,微软公司计划针对运行于该公司2017年发布的Azure Cosmos D […]
-
Notre Dame对云端SQL Server性能基准的探索实践
确立SQL Server的性能基准,对于云端迁移来说是至关重要的第一步,一位来自于University of Notre Dame 的DBA表示,他正在试图通过数据库监控软件,找出SQL server的性能基准。
-
DBA必须掌握的数据库恢复管理技术
如果没有备份副本,数据库管理员就无法还原数据库,所以DBA在恢复之前倾向于考虑备份是合乎逻辑的。 但是,对我来说,这种逻辑一直是错误的。