东亚银行、岚图汽车带你解锁 AIGC 时代的数字化人才培养各赛道新模式! 了解详情
写点什么

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

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

关注

评论

发布
暂无评论
  • 百万级电商秒杀架构设计

    你作为一个电商创业公司的架构师,负责设计6.18大促秒杀系统的设计,你们的业务模式如下:

    2022-05-08

  • Go-Excelize API 源码阅读(十九)——SetHeaderFooter

    Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 29500 国际标准。可以使用它来读取、写入由 Microsoft Excel™ 2007 及以上版本创建的电子表格文档。支持 XLAM / XLSM / XLSX / XLTM / XLTX 等多种文档格式,高度兼容带

    2022-08-24

  • 32|存储引擎:数据清洗与存储

    这节课,我们一起写一个存储引擎,用它来处理数据的存储问题。

    2022-12-22

  • 17|框架升级:如何小步安全地升级数据库框架?

    今天我们以Sharing项目为例,一起把项目中原先采用SQL拼写的方式替换为使用Room框架来统一管理缓存数据。

    2023-03-20

  • 【LeetCode】字母异位词分组 Java 题解

    给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。

    2021-12-06

  • 电商秒杀系统

    你作为一个电商创业公司的架构师,负责设计6.18大促秒杀系统的设计,你们的业务模式如下:

    2022-06-30

  • 14|跳数索引:后起新秀 ClickHouse

    这节课我会从写入、分片、索引、查询的实现这几个方面带你重新认识ClickHouse。

    2022-11-23

  • 【愚公系列】2022 年 06 月 二十三种设计模式 (二十二)- 模板方法模式 (Template Method Pattern)

    设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化

    2022-06-04

  • SQL 窗口函数原理和使用

    讲师介绍: 王振兴,毕业于北京邮电大学,前阿里巴巴技术专家。多年的 BI 相关的平台开发经验。对数据库、SQL、大数据的离线开发有深入的研究和多年的实战经验。 问题背景: 在我们的应用系统里面,通常会遇到一些复杂的查询需求,例如按照工作年限给员工排名,要求年限一样的员工排名也一样。类似这样的查询,普通的 SQL 实现起来特别复杂,效率也比较低。为此,SQL ISO-2003提供的 SQL 窗口函数,可以用于解决功能复杂的 SQL 查询场景,提高我们的工作效率。 内容看点: 为什么要学习 SQL 窗口函数 SQL 窗口函数的原理和使用方法

    2022-02-15

  • 学习 web 前端开发有哪些好的方法

    无论是学习什么技术,除了找到一个比较适合自己的学习方式外,更为重要的是要在不断学习过程中,找到适合自己的学习方法才能更快的提高学习效率,当然学习web前端开发技术也不例外,其实,对于零基础小伙伴学习前端开发技术知识,选择一家比较靠谱的前端培训

    2022-07-19

  • 1. Hive 的基本概述与原理

    2023-09-08

  • 直击面试!阿里技术官手码 12W 字面试小册在 Github 上爆火

    临近金三银四,想必有不少老哥已经在为面试做准备了。大家想必也知道现在面试就是看项目经验+基本技术+个人潜力(也就是值不值得培养)。总之就是每一次面试都是对我们能力的检验(无论是软实力还是硬实力)。软实力其实就是简历包装,自我介绍,与面试官交谈技

    2023-03-22

  • 24 小时自助洗车让洗车更自由

    24小时自助洗车除了让洗车更自由之外,洗车费用也很划算,都是按时计费的。一般洗车一次车大概8-10元就够了,如果要洗的再久点,那就10-15元左右,是不是很划算呢?

    2022-06-30

  • Spark 3.0(二):DPP 特性该怎么用?

    今天这一讲,我通过一个电商场景下的例子带你学习分区剪裁、动态分区剪裁的概念、作用、用法和注意事项,让你一次就学会!

    2021-05-10

  • 盲盒开发盲盒小程序系统开发

    盲盒软件源码开发,盲盒app原生开发,盲盒系统开发,盲盒小程序开发,盲盒模式开发,盲盒平台搭建,盲盒功能详解,盲盒源码搭建,一番赏小程序,芒趣app小程序

    2021-11-17

  • react 源码解析 16.concurrent 模式

    1.开篇介绍和面试题

    2021-12-24

  • BridgePattern- 桥接模式

    桥接模式(Bridge Pattern):也称之为桥梁模式,接口(Interface)模式或者柄体(Handle and Body)模式,其核心思想是将抽象部分与它的实现部分分离,使抽象部分和实现部分两个维度都可以独立的变化。

    2022-05-31

  • 模块九作业 - 设计电商秒杀系统

    【业务背景】 你作为一个电商创业公司的架构师,负责设计6.18大促秒杀系统的设计,你们的业务模式如下:

    2022-01-16

  • 高并发线下沙龙不容错过!

    本次 Qunar 高并发线下沙龙面向公司内外部所有同学,将与大家从下方五个主题进行面对面交流与切磋。本次分享不仅有技术干货,还有幸运奖品,精美茶歇。欢迎感兴趣的小伙伴报名,让我们对高并发主题来一次深入交流!

    2021-12-07

  • 盲盒开发盲盒 app 开发

    盲盒软件源码开发,盲盒app原生开发,盲盒系统开发,盲盒小程序开发,盲盒模式开发,盲盒平台搭建,盲盒功能详解,盲盒源码搭建,一番赏小程序,芒趣app小程序

    2021-11-17

发现更多内容

Go语言入门07—指针

良猿

Go golang 后端 10月月更

Webpack中的高级特性

Geek_02d948

webpack

华为云ECS,弹性伸缩按需选择,让企业以更低成本享受云服务

爱尚科技

华为云ECS,去除现代化企业服务器的数据安全忧虑

爱尚科技

javascript尾递归优化

hellocoder2029

JavaScript

清华年薪百万大佬,带你深入JVM实战调优,看完还敢说你懂JVM

小二,上酒上酒

Java 马士兵

一站式全覆盖数据 I/O 平台 - Alluxio 与 Aunalytics 的完美结合

Alluxio

分布式 presto Alluxio 大数据 开源 #开源

龙蜥对Intel下一代芯片SPR的支持及Anolis 23 产品规划介绍 | 第 50 期

OpenAnolis小助手

开源 直播 intel 龙蜥大讲堂 月会

前端展示中实现批量标签动态生成

葡萄城技术团队

批量 BI 报表 商业智能 打印

技术分享| 基于 Etcd 的分布式锁实现原理及方案

anyRTC开发者

分布式 etcd 存储系统

华为云ECS,如何助力数字化企业创新发展

爱尚科技

一文读懂 DevSecOps:工作原理、优势和实现

SEAL安全

DevOps 云原生 敏捷开发 DevSecOps 企业号十月 PK 榜

和至少为 K 的最短子数组

掘金安东尼

算法 10月月更

Vue响应式依赖收集原理分析-vue高级必备

yyds2026

Vue

Nodejs:ESModule和commonjs,傻傻分不清

coder2028

node.js

云安全企业有哪些?哪些比较知名?

行云管家

云计算 网络安全 云安全

在 Java 代码中来一段 JavaScript?聊聊 Flowable 中的脚本任务

江南一点雨

Java springboot workflow flowable

Vue中的diff算法深度解析

yyds2026

Vue

华为云ECS,弹性云服务器标杆,众多企业的共同选择

爱尚科技

React组件复用的发展史

夏天的味道123

React

Webpack完整打包流程分析

Geek_02d948

webpack

融云一站式「云市场」上线,携手生态伙伴,共建价值平台

融云 RongCloud

通讯协议 市场 CND

如何判断等保测评机构有资质?符合要求?

行云管家

等保 等级保护 等保测评 等保测评机构

Nodejs相关ORM框架分析

coder2028

node.js

腾讯T4耗时36天整理出了:多线程+JVM+设计模式+Redis+MySQL

小二,上酒上酒

MySQL redis JVM 多线程

员工离职率高如何解决?

优秀

企业管理 员工离职

React组件复用的技巧

夏天的味道123

React

今天终于知道 Redis 为什么要用跳跃表了

C++后台开发

redis 中间件 后端开发 跳表 C++开发

React组件通信

xiaofeng

React

机器学习服务文本识别能力演进,大幅提升识别准确率

HMS Core

机器学习

React组件设计模式-纯组件,函数组件,高阶组件

xiaofeng

React

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