【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

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

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

关注

评论

发布
暂无评论
  • 24 小时自助洗车让洗车更自由

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

    2022-06-30

  • 百万级电商秒杀架构设计

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

    2022-05-08

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

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

    2021-05-10

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

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

    2021-12-06

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

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

    2021-11-17

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

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

    2021-12-07

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

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

    2022-06-04

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

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

    2022-01-16

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

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

    2022-08-24

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

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

    2022-11-23

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

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

    2022-12-22

  • 盲盒开发盲盒 app 开发

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

    2021-11-17

  • BridgePattern- 桥接模式

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

    2022-05-31

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

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

    2023-03-22

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

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

    2022-07-19

  • react 源码解析 16.concurrent 模式

    1.开篇介绍和面试题

    2021-12-24

  • 电商秒杀系统

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

    2022-06-30

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

    2023-09-08

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

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

    2023-03-20

  • SQL 窗口函数原理和使用

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

    2022-02-15

发现更多内容

开源一夏 | 教你快速实现“基于Docker快速构建基于Prometheus的MySQL监控系统”

知识浅谈

开源 8月月更

wallys/new product/MT7915/MT7975/4*radios/

wallys-wifi6

本周四晚19:00知识赋能第4期直播丨OpenHarmony智能家居项目之设备控制实现

OpenHarmony开发者

OpenHarmony

C#/VB.NET 从PDF中提取表格

在下毛毛雨

C# .net PDF 提取表格

《数字经济全景白皮书》金融数字用户篇 重磅发布!

易观分析

金融 数字用户

深入解析分布式文件系统的一致性的实现

移动云大数据

分布式系统 数据同步

Hadoop Spark太重,esProc SPL很轻

石臻臻的杂货铺

SPL

开源一夏 | 分享一款实用的太阳能充电电路(室内光照可用)

矜辰所致

开源 电路设计 8月月更 太阳能

深入理解MySQL事务MVCC的核心概念以及底层原理

jiangxl

MySQL 事务 MVCC dba 签约计划第三季

mysql进阶(二十四)防御SQL注入的方法总结

No Silver Bullet

MySQL SQL注入 8月月更

LP流动性挖矿DAPP系统开发丨流动性挖矿功能原理及说明

开发微hkkf5566

下午见!2022京东云数据库新品发布会

京东科技开发者

MySQL 数据库 云计算 安全 数据迁移

Sass/Scss、Less 是什么?

CRMEB

Java网络编程IO模型 --- BIO、NIO、AIO详解

Bug终结者

Java io 8月月更

限流不只有计数器,带你快速了解四种经典限流算法实现

知识浅谈

8月月更

后台图库上传功能

CRMEB

微信小程序获取用户手机号码

源字节1号

微信小程序 软件开发 前端开发 后端开发

浅聊缓存函数

掘金安东尼

前端 8月月更 高阶函数

中文字体反爬,易易易易易易【Python脱敏】车车车车车车车车

梦想橡皮擦

Python 爬虫 8月月更

聊天app开发——防炸麦以及节省成本的内容鉴定方法

开源直播系统源码

软件开发 语音聊天室 直播系统源码 直播源码 语音app开发

STM32+OLED显示屏制作指针式电子钟

DS小龙哥

8月月更

浅谈SVN备份

剑雪封喉

1K字详解canal-1.1.5实时同步MySQL数据到Elasticsearch

了不起的程序猿

MySQL 数据库 程序员 Java 分布式

ABAB-740新语法

桥下本有油菜花

SAP abap

实至名归!九章云极DataCanvas公司荣获智能制造领域多项殊荣

九章云极DataCanvas

智能制造

TiKV & TiFlash 加速复杂业务查询丨TiFlash 应用实践

PingCAP

TiDB

Linux工具之Vim编辑器

TimeFriends

8月月更

XDR平台架构与关键技术解析

极盾科技

网络安全 信息安全 数据安全 xdr 检测响应

Dva.js 新手入门指南

Susie喵~

dva 8月月更

Python 教程之输入输出(3)—— 在 Python 中从用户那里获取多个输入

海拥(haiyong.site)

Python 8月月更

近邻搜索算法浅析

得物技术

深度学习 算法 Faiss 近邻搜索 乘积量化

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