推广 热搜: 视频会议  服务器  IBM  交换机  思科  软件  磁盘阵列  MCU  投影机  CAB 

SQL中文标准版

点击图片查看原图
 
品牌: 微软
型号: 2014
规格: 5
单价: 4900.00元/套
起订: 1 套
供货总量: 5000 套
发货期限: 自买家付款之日起 3 天内发货
所在地: 广东 深圳市
有效期至: 长期有效
最后更新: 2015-09-29 09:16
浏览次数: 105
购买   加入购物车
 
公司基本资料信息
详细说明


列存储索引其实在在SQL Server 2012中就已经存在,但SQL Server 2012中只允许建立非聚集列索引,这意味着列索引是在原有的行存储索引之上的引用了底层的数据,因此会消耗更多的存储空间,但2012中的限制最大的还是一旦将非聚集列存储索引建立在某个表上时,该表将变为只读,这使得即使在数据仓库中使用列索引,每次更新数据都变成非常痛苦的事。SQL Server 2014中的可更新聚集列索引则解决了该问题。

可更新聚集列存储索引?

    聚集列存储索引的概念可以类比于传统的行存储,聚集索引既是数据本身,列存储的概念也是同样。将数据按照列存储而不是行存储则提供了诸多好处,

首先对于大量聚合、扫描、分组等数据仓库类查询仅仅需要读取选择的列,对于需要Join多个表的星型结构等场景性能提升尤其明显 其次是列索引可以更新,并且每个表中只需要一个(这是优点也是缺点,因为无法再建非聚集索引)聚集列索引即可,大大节省了空间 列索引由于是按列存储,同一列中数据类型是一样的,因此可以更加容易的实现更高的压缩比率 列存储的表会占用更少的存储空间,因此存在更少的IO

那么列存储索引有什么弊端呢?

    行存储对于OLTP操作十分适合,因为每个聚集索引键可以标识某一行,该行存储在物理磁盘上也连续,因此可以利用Seek操作完成大量选择性非常高的查询,而列存储索引同一行的每一列并不在物理上联系,并且列存储聚集索引中并没有“主键”的概念,因此并不存在SEEK操作,如果大量OLTP类的查询,性能将会出现问题。

    列存储索引只支持Scan操作,如图1所示。

图1.列存储索引只支持Scan操作

那么列索引是如何存储呢?

    列索引存储可以望文生义,就是按列存储。这个过程可以分为3个阶段,首先将一堆行分组,这就是所谓的“行组”,分组完成后,再按列切分,最后将列压缩,如图2所示。

图2.列存储的过程

    我们注意到其中有一部分不够分组的,那么就直接让这部分数据以传统行存储的形式老实呆着吧,这就是所谓的Deltastore,等数据增长到可以分组时再进行分组,目前SQL Server 2014认为10W以下的数据都不够分组。

    上述列存储的两部分我们可以通过2014新引入的DMV进行观测,如图3所示。在图3中,我们队目前已经存在31465行的聚集列索引插入了1000行新的数据,则SQL Server认为这部分数据不满10W行,因此以Deltastore的方式存在。


 

更多>本企业其它产品
正版趋势科技安全无忧7.0总代理 共享存储双机热备RoseHA代理 RoseMirrorHA镜像双机热备软件 正版SQL Server 2014 Windows Server 2012正版操作系统 正版中望CAD2015标准版 中望CAD2015专业版总代理 正版国产CAD代理商国产CAD软件
0相关评论

网站首页  |  付款方式  |  版权隐私  |  使用协议  |  联系方式  |  关于我们  |  网站地图  |  排名推广  |  广告服务  |  RSS订阅  |  违规举报  |  京ICP备11008917号-2  |