作者

 

聚集列存储索引(CC Index)是SQL Server 2014中两大最引人瞩目的特性之一,设计为用于超过1千万条记录的数据表。使用者无需明确的指定索引,也能够保证分析式查询的优良性能。

但2014版本中的这一特性存在着一个缺陷,即使用者无法指定索引。虽然CC索引比起传统表的表扫描要快得多,但它还是及不上经手动调整的覆盖索引。因此,为了同时支持这两种模式,开发者不得不创建两张表:一张具有B树索引结构的普通表,以及一个使用了聚集列存储索引的表。显然,保持这两张表的同步是一个很大的挑战。

在SQL Server 2016中,这个问题将不复存在。在兼容级别130(即SQL Server 2016)中的聚集列存储索引可包含B树风格的二级索引,与传统的数据表一样。这种索引支持任何数量的列,并且可以进行筛选。

聚集列存储索引的另一个问题在于缺乏对于主键和外键的支持。由于数据库无法强制某个CC索引的引用完整性,只能由中间层的开发者保证不会出现数据损坏的情况。如今因为能够在CC索引中加入B树索引,使用者就能够“使用一个B树索引创建主键与外键,从而实现这些限制条件的强制实施”。

警告:“一旦为聚集列存储索引定义了B树索引,就不能够使用MERGE了。”

隔离级别

从SQL Server 2016开始,CC索引支持快照与读提交快照两种隔离级别了,因而无需再使用读-写锁,也使得频繁写入数据的表的性能表现更为出色。

索引碎片整理

在SQL Server 2014中的CC索引被设计为主要用于添加数据风格的操作。虽然也能够对记录进行修改和删除操作,但这会产生索引碎片,只有通过重建整个CC索引才能够消除这些碎片。而在2016中,可以通过重新组织索引操作减少碎片。索引的重新组织是一种在线操作,这表示它无需长时间占有锁,因此妨碍对表的查询操作。

批量模式的增强

由于CC索引与非聚集列存储索引使用了相同的存储引擎,因此它的批量模式也同样得到增强。

查看英文原文:SQL Server 2016: Clustered Columnstore Index Enhancements


感谢张龙对本文的审校。

最新文章

  1. Java的基本数据类型与转换
  2. python数字图像处理(19):骨架提取与分水岭算法
  3. ecshop修改注册、增加手机
  4. 2016年12月20日 星期二 --出埃及记 Exodus 21:15
  5. expect入门--自动化linux交互式命令
  6. 【jmeter】JMeter中返回Json数据的处理方法
  7. Win2008或IIS7的文件上传大小限制解决方案
  8. WWF3入门<第一篇>
  9. 【CSS3】---:before :after生成内容
  10. 【原创】微信公众号与HTML 5混合模式揭秘3——JSSDK获取地理位置
  11. Eclipse部署多个Web项目内存溢出,java.lang.OutOfMemoryError: PermGen space
  12. windows 2003 server 安装 .NET Framework 2.0环境
  13. android usb挂载分析
  14. 笔记:Spring Cloud Ribbon RestTemplate 详解
  15. golang 学习笔记 ---Sizeof
  16. AtCoder Tenka1 Programmer Beginner Contest 解题报告
  17. YII第三步,日志开启
  18. Class.getResourceAsStream 和 ClassLoder.getResourceAsStream 的区别
  19. 东北育才 NOIP模拟赛第1场
  20. USACO 5.5 Hidden Password

热门文章

  1. 是面向对象设计五个基本原则(SOLID)
  2. 洛谷 P1462 通往奥格瑞玛的道路
  3. Redis3.2.5配置主从服务器遇到的一些错误
  4. make编译二
  5. ACM解题之(ZOJ 2212) Argus
  6. 剑指offer 面试40题
  7. sorted 、 filter 、 map
  8. PAT 天梯赛 L1-020. 帅到没朋友 【STL】
  9. 利用 :before 特性实现图片按比例显示
  10. 前端之CSS样式