写点什么

SQL Server 2016 —— 可更新的非聚集列存储索引

  • 2015-06-14
  • 本文字数:1051 字

    阅读完需:约 3 分钟

非聚集列存储索引(NCC Index)在 SQL Server 2016 中也得到了一定程度的功能增强,其中最引人注目的一条在于可以对其进行更新了。

非聚集列存储索引功能最早出现在 SQL Server 2012 中,它的设计目的是为普通的堆或 B 树表提供一种只读的快照。它的设想是对其进行定期的删除与重建,可以以每个晚间或每一周作为维护周期。作为一种替代方式,你也能够通过分区切换加载更多的数据。

在 SQL Server 2014 中出现了聚集列存储索引(CC Index),这种列存储引擎的功能得到了升级,能够支持数据更改。但这种功能并未在 NCC 索引中得到延续,后者的能力依然仅限于快照模式而已。

在 2016 版本中,这一条限制终于被完全取消了。实际上,NCC 索引在默认情况下就是可更新的。如果你仍然希望使用原始的快照方式,那么必须将该索引保存在一个只读的文件组中。

筛选索引

如果你确信只需要一个经过良好定义的数据子集,那么筛选索引能够极大地减少所需的磁盘空间。并且在许多情况下,筛选也能够加速性能。

在 SQL Server 2016 中 NCC 索引的另一个新特性是能够对索引定义应用筛选条件,这一点只能够用于非聚集列存储索引,而聚集列存储索引与内存优化表仍然需要包括完整的索引定义。

批量模式增强

批量模式处理是一个非常神秘的主题,只有当你理解 SQL Server 解释器的工作原理时才能够充分利用它。如果你对这一主题还不熟悉,请阅读 Chris Adkin 的系列文章“了解 SQL Server 批量模式的底层知识”。简单来说,批量模式比起一次处理一条记录的速度至少快两倍,但并不是在所有情况下都能够使用这一模式的。

如果你正在运行 13.0 兼容模式(即 SQL Server 2016),那么以下这些操作就可以选择使用批量模式。

  • 排序
  • 对多个不同函数进行聚合:例如 COUNT/COUNT、AVG/SUM、CHECKSUM_AGG、STDEV/STDEVP
  • 开窗聚合函数:COUNT、COUNT_BIG、SUM、AVG、MIN、MAX,以及 CLR
  • 开窗用户自定义聚合:CHECKSUM_AGG、STDEV、STDEVP、VAR、VARP,以及 GROUPING
  • 开窗聚合分析函数:LAG< LEAD、FIRST_VALUE、LAST_VALUE、PERCENTILE_CONT、PERCENTILE_DISC、CUME_DIST、以及 PERCENT_RANK

在 SQL Server 1014 中,批量模式只限于并行查询使用,而现在它也可以用于单线程的工作了。

查看英文原文: SQL Server 2016: Updatable, Non-Clustered Columnstore Indexes


感谢张龙对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-06-14 05:172080
用户头像

发布了 428 篇内容, 共 194.7 次阅读, 收获喜欢 39 次。

关注

评论

发布
暂无评论
发现更多内容

2021大厂Java面试真题集锦

JVM调优资料

Java 程序员 后端

一次Http Get请求健壮性问题的排查过程

liuzhen007

8月日更

kubernetes入门:简介与基础操作命令

小鲍侃java

8月日更

极客-大数据-作业4 Hive

西伯利亚鼯鼠

netty系列之:netty中的ByteBuf详解

程序那些事

Java Netty nio 程序那些事

十大排序算法--希尔排序

Ayue、

排序算法 8月日更

2021年冲刺年薪40w

Java 程序员 后端

DDD 领域驱动设计·学习应用·二

小诚信驿站

领域驱动设计 领域 领域驱动模型DDD 中台架构 领域驱动

2021年大厂Java面经

Java 程序员 后端

2021年春招Java面试题

Java 程序员 后端

2021年最新Java大厂面试题来袭

策划Java工程师

Java 程序员 后端

【LeetCode】有效三角形的个数Java题解

Albert

算法 LeetCode 8月日更

2021年字节跳动+京东+美团面试总结

Java 程序员 后端

2021最值得加入的互联网公司有哪些

策划Java工程师

Java 程序员 后端

2021最新Java开发者学习路线

策划Java工程师

Java 程序员 后端

面试官:展开说说,Spring中Bean对象是如何通过注解注入的?

小傅哥

spring 小傅哥 注解注入

2021年最新大厂Java面试笔试题目

策划Java工程师

Java 程序员 后端

2021年阿里Java高级面试题分享

策划Java工程师

Java 程序员 后端

上K8s,研发团队如何从容一点?

行云创新

容器 k8s

2021年上半年最接地气的Java面经

Java 程序员 后端

2021年抓住金三银四涨薪好时机

Java 程序员 后端

2021我的Java路要怎么走

策划Java工程师

Java 程序员 后端

2021最新Java中级面试题目汇总解答

策划Java工程师

Java 程序员 后端

取经之旅第 55 天,Python OpenCV 透视变换前置知识轮廓坐标点

梦想橡皮擦

8月日更

【Flutter 专题】78 图解 Android Native 集成 FlutterBoost 小尝试 (一)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 8月日更

手撕环形队列系列三:多生产者并行写入

实力程序员

程序员 数据结构 C语言 编程开发 环形队列

手撸二叉树之二叉搜索树的最近公共祖先

HelloWorld杰少

数据结构与算法 8月日更

2021年阿里Java高级面试题及答案

策划Java工程师

Java 程序员 后端

2021必看-Java高级面试题总结

策划Java工程师

Java 程序员 后端

容器云平台和Kubernetes之间不得不说的那些事

用友BIP

Kubernetes 容器

企业需要拥有自己特色的DevOps

用友BIP

Docker 容器 DevOps 微服务

SQL Server 2016 —— 可更新的非聚集列存储索引_架构_Jonathan Allen_InfoQ精选文章