阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

SQL Server 2016:内存列存储索引

  • 2015-06-04
  • 本文字数:634 字

    阅读完需:约 2 分钟

SQL Server 2016 的一项新特性是可以在“内存优化表(Memory Optimized Table)”上添加“列存储索引(Columnstore Index)”。要理解这是什么意思,我们应该首先解释术语列存储索引和内存优化表。

列存储索引是一种按照列而不是行组织数据的索引。每个数据块只存储一个列的数据,最多包含100 万行。因此,如果数据为5 列1000 万行,那么就需要存储在50 个数据块中。当只查询部分列时,这种数据组织策略特别有效,因为数据库不会从磁盘读取用户不关心的列。

列存储索引比表扫描要快得多,但没有传统的B 树索引那么快。这特别适合于那种无法预测需要什么索引的即时报表。

内存优化表正如它的名字, 它是一个经过优化并一直驻留在内存中的表。这有许多好处,比如锁无关写,但它也有很大的局限性。比如,只允许有8 个索引,这对于用于即时查询的表而言限制太大。

SQL Server 2016 部分地弥补了这种限制,它允许那 8 个索引中的其中一个为列存储索引。但要遵循如下规则:

  • 像内存优化表上的其它索引一样,列存储索引必须在表创建时定义。
  • 列存储索引必须包含基表中的所有列。(在普通表上的列存储索引不存在这种限制。)
  • 列存储索引必须包含基表中的所有行。换言之,它不能是“筛选索引(filtered index)”。

一个与内存优化表相关的特性是创建本地编译查询。数据库使用C 编译器将这些查询编译成了机器码,而不使用SQL Server 解释器。使用列存储索引的查询可以使用这个选项,而不用总是通过解释器运行。

查看英文原文 SQL Server 2016: In-Memory Columnstore Indexes

2015-06-04 10:162348
用户头像

发布了 1008 篇内容, 共 374.2 次阅读, 收获喜欢 341 次。

关注

评论

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

关于软件建模语言UML总结

solike

极客大学架构师训练营

食堂就餐卡系统设计

ABS

作业-2020-9-20

芝麻酱

极客大学架构师训练营

Week 1 作業一:食堂就餐卡系統設計

Judyyy

架構師 極客大學 女程序員

第一周课后练习 - 作业 1

致星海

架构一期-甘霖-Week1-食堂卡系统设计

小粽

架构师训练营作业:第一周

m

读书笔记丨计算机网络和因特网

Liuchengz.

计算机网络

第一周课后练习 - 作业2

致星海

第1周内容总结

paul

架构训练营1期-第1周练习

balsamspear

极客大学架构师训练营 第一周命题作业

架构师训练营第1期-Week1 架构方法学习总结

鲁大江

软件工程 极客大学架构师训练营 UML 架构方法

食堂就餐卡系统设计

积极&丧

UML for Cafeteria System

第一周总结

积极&丧

作业-食堂就餐卡系统设计

solike

极客大学架构师训练营

架构师训练营第一周作业

Erwa

极客大学架构师训练营

架构师第一期作业2

sean

第一周学习总结

kevin

架构师训练营第一周学习笔记

一马行千里

学习 极客大学架构师训练营

第一周学习总结

mm马

极客大学架构师训练营

Python 之父为什么嫌弃 lambda 匿名函数?

Python猫

Python 学习 编程

第一周作业

极客大学架构师训练营

第一周学习笔记及uml设计

橘子皮嚼着不脆

架构师训练营第一周心得

CmHuang

架构师训练营第一期作业

sean

「架构师训练营第 1 期」第一周作业

张国荣

极客大学架构师训练营

week1总结

willson

架构师训练营 - week1 - 食堂就餐系统设计

month

极客大学架构师训练营

极客时间架构1期:第1周架构方法-学习总结

Null

第一周 UML图

mm马

SQL Server 2016:内存列存储索引_架构_Jonathan Allen_InfoQ精选文章