写点什么

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:172202
用户头像

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

关注

评论

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

C#/VB.NET:从PDF中提取图片

在下毛毛雨

C# .net PDF 提取图像

MySQL面试宝典-文件篇

CRMEB

大数据培训Flink 流怎么来处理 API

@零度

flink 大数据开发

洞见科技助力华夏银行「隐私计算数据安全平台」建设,赋能金融业务提质增效

洞见科技

金融科技 隐私计算

2022年秋季广州美博会-2022年9月份广州美博会

Geek_0b38bb

2022年广州美博会 秋季广州美博会 9月份广州美博会 美博会

搭建个人博客,Docsify+Github webhook+JGit解决方案

艾小仙

Java GitHub webhook jgit halo

转转统一权限系统的设计与实现(后端实现篇)

转转技术团队

后端 权限控制

SAP Field Service Management 和微信集成的案例分享和实现介绍

汪子熙

云原生 SaaS SAP 6月月更 Marketing Cloud

SAP Marketing Cloud 功能概述(一)

汪子熙

云原生 SaaS SAP 6月月更 Marketing Cloud

NodeJS 5分钟 连接 Redis 读写操作 👑

德育处主任

redis Node 6月月更

2022年广州美博会-2022第60届广州国际美博会

Geek_0b38bb

2022年广州美博会 秋季广州美博会 美博会 第60届广州美博会

疫情过后,远程办公还在吗,企业如何构建数字化转型

BeeWorks

如何规避开源安全漏洞风险?新思科技OSSRA报告给出建议

BeeWorks

Volcano社区v1.6.0版本正式发布

华为云开发者联盟

云计算 云原生 后端

【战码先锋】润和赛道正式开启,马上加入赢取双重大礼!

OpenHarmony开发者

Open Harmony

云渲染技术的“公”“私”

Finovy Cloud

服务器 云渲染 元宇宙 渲染器

大数据培训Flink 中的 Window理解与分析

@零度

flink 大数据开发

华为云发布ModelBox AI应用开发框架

华为云开发者联盟

人工智能 华为云

2022年深圳美博会-2022年深圳国际美博会

Geek_0b38bb

美博会 2022年深圳美博会 2022年深圳国际美博会 深圳美博会

记录那些年 Nacos 的坑

Damon

6月月更

【Python技能树共建】常用标准库

梦想橡皮擦

Python 6月月更

征文投稿丨基于轻量应用服务器+OSS的中小型应用运维实践

阿里云弹性计算

运维 OSS CI/CD 轻量应用

5种在TypeScript中使用的类型保护

华为云开发者联盟

前端 变量 类型

im即时通讯的简介和趋势

BeeWorks

如何串连三个「语言工具」描述简洁清晰的需求?

LigaAI

程序人生 产品经理 需求 产品需求 产品设计与思考

【直播回顾】OpenHarmony知识赋能六期第一课—OpenHarmony智能家居项目介绍

OpenHarmony开发者

OpenHarmony

我们公司使用了6年的项目部署方案,打包 + 一键部署详解,稳的一批

沉默王二

Java

龙蜥社区成立云原生 SIG,引入 3 大核心技术,共建云原生生态

OpenAnolis小助手

开源 技术 云原生 龙蜥社区 sig

软件开发外包的优势,哪些企业适合软件开发外包?

开源直播系统源码

软件开发 直播带货 直播带货源码 视频带货

MySQL采用B+树作为索引的原因

龙空白白

索引结构 MySQL 数据库 索引原理

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