SQL Server 2012容量管理:列存储索引

日期: 2011-11-24 作者:Serdar Yegulalp翻译:冯昀辉 来源:TechTarget中国 英文

由于在大数据集中常常会出现扩展问题,微软公司即将推出的SQL Server 2012中大部分针对扩展性和容量管理的新功能都定位专门处理大负载:数据仓库,商业智能(BI)和决策支持应用程序。把这样一些应用程序整合到一起是相当辛苦的,而维护它们的数据结构就更困难了。   列存储索引   列存储索引被标榜为SQL Server 2012中最大的可扩展性改进,现在社区技术预览(CTP)中已经可用了。列存储索引为每个列把数据打包到磁盘页的独立集合中。

这是相对于传统的每页存储多行的方法而言的。   微软公司宣称使用这种新的索引方法有几个优势。举例来说,存储列这种方式使得计算特殊查询需要的列能轻松快速地提取……

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

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

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

由于在大数据集中常常会出现扩展问题,微软公司即将推出的SQL Server 2012中大部分针对扩展性和容量管理的新功能都定位专门处理大负载:数据仓库,商业智能(BI)和决策支持应用程序。把这样一些应用程序整合到一起是相当辛苦的,而维护它们的数据结构就更困难了。

  列存储索引

  列存储索引被标榜为SQL Server 2012中最大的可扩展性改进,现在社区技术预览(CTP)中已经可用了。列存储索引为每个列把数据打包到磁盘页的独立集合中。这是相对于传统的每页存储多行的方法而言的。

  微软公司宣称使用这种新的索引方法有几个优势。举例来说,存储列这种方式使得计算特殊查询需要的列能轻松快速地提取。这是因为该索引压缩了数据,平均来看列比整个行更冗余,因此可压缩性也更高。磁盘访问模式和缓冲允许数据被更加快速地提取和保留。在给定表中存在的列越多,或者你计划添加到给定表中的列越多,列索引给表带来的扩展效果就越好。

  从扩展性的角度来看,优点是很明显的。你可以给数据库扩充容量,而无需担心这会对BI查询(查询的数据可能达到数十亿行)性能造成影响。微软公司自己前期工作发现,请求巨量行数据的各种查询订单程数量级激增,这跟你手头的数据类型有关。

  需要说明的一点是,一旦你给表增加了列存储索引,它就变成只读的了。具体来说,你不能使用“Insert,Update,Delete”或者“Merge”语句,也不能使用批量操作添加数据。我猜这是避免列存储索引被重复更新的一种手段,进而避免损失摆在首位的性能优势。

  如果你需要在没有列存储索引的情况下运行查询(例如,判断净性能增益),你可以在T-SQL查询中使用“IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX”选项,从该选项的名称也可以看出,微软公司已经计划推出集群的列存储索引。

作者

Serdar Yegulalp
Serdar Yegulalp

Serdar Yegulalp从1994年到2001年为Windows杂志写作,覆盖了广泛的技术方面。他现在是《The Windows 2000 Power Users Newsletter》一书的出版者,辛勤钻研他擅长的Windows NT, Windows 2000 and Windows XP领域,并为TechTarget写专栏。

相关推荐