2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

SQL Server 2011 中基于列的存储方式

  • 2011-03-14
  • 本文字数:827 字

    阅读完需:约 3 分钟

和大多数主流数据库一样,如果表拥有聚集索引,那么 SQL Server 就会以 B- 树的方式存储,否则就会使用的方式存储。这两种方法本质上都是基于行的,其中每页中行的条数会根据总体上行的大小不同而不同。从SQL Server 2011 开始,微软为我们提供了第三种选择。SQL Server 会提供一种“列存储索引”,从而以列而不是行的方式来存储数据。

当使用数据规模为1TB、记录条数为十四亿四千万的表时,微软声称基于列的查询在CPU 时间上会有16 倍的提升,而在使用时间上会有455 倍的提高。在真实情况下,这意味着本来要耗费501 秒的查询,现在只需要1.1 秒就可以完成了。这项测试是在拥有32 个逻辑处理器和256GB 内存的计算机上执行的。

微软把每个列都隔离在自身的一组页中,从而达到了这种惊人的改善。当执行查询的时候,只会从磁盘载入位于结果集中的列。而包含其它列的页会被忽略。

这种方法相当于为每种我们所能想象到的列组合创建替代索引。然而,这种方式不会消耗大量的磁盘空间,它实际上会比传统的表占用更小的空间。由于SQL Server 的压缩会发生在页级别上,并且和行相比,列中的数据更容易重复,所以使用列存储索引的表将会拥有更高的压缩等级。

但暂时我们还不能轻易决定使用列存储索引。首先也是最重要的,它们是不可更新的。一旦创建了列存储的索引,那么就不允许在表上执行插入、更新或者删除等操作了。微软期望更多商店每天对数据进行刷新,否则就需要把数据做只读处理。在刷新周期中,我们会删除索引,更新数据,然后再重新建立索引。由于这肯定是代价昂贵的操作,所以我们可以使用垂直分区来把操作限制到逻辑表的子集范围内。

使用列存储的索引也会导致性能的降低。如果你使用大多数列,那么重新组合行会耗费大量的资源。这意味着OLTP 样式的查询应该避免这种方式,而对于OLAP 形式的查询,这种方式会比较有利。或者换句话说,如果你在编写“SELECT *”或者每次抓取一行数据,那么列存储索引就不适合你。

查看英文原文: Column-based Storage in SQL Server 2011

2011-03-14 07:052820
用户头像

发布了 340 篇内容, 共 144.5 次阅读, 收获喜欢 13 次。

关注

评论

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

不懂这五项权力,做什么项目经理

Ian哥

项目管理 28天写作 五项权力

架构实战营 - 毕业设计

en

#架构实战营

『新华报』重庆试试彩官方平台[手机乐乎]

天马行空

重庆试试彩官方平台

『新华报』飞艇开奖结果官网[手机乐乎]

天马行空

飞艇开奖结果官网

mongodb出现重复id怎么办?

喵叔

28天写作 12月日更

Golang Gin 框架之中间件(六)

liuzhen007

28天写作 12月日更

新知识的地图绘制

Nydia

爸爸想对儿子说的话

Tiger

28天写作

Prometheus Exporter (十五)PostgreSQL Server Exporter

耳东@Erdong

Prometheus postgres 28天写作 exporter 12月日更

现实扭曲力场引论

Justin

群体心理学 28天写作 玄学

『新华报』秒速飞艇开奖[手机乐乎]

天马行空

秒速飞艇开奖

在线蚂蚁文,菊花文生成工具

入门小站

工具

架构训练营模块一作业

沈益飞

「架构实战营」

《深入理解JVM虚拟机》第三章 垃圾收集器与内存分配策略

Joseph295

请清晰沟通选题-从策略层面定义技术演讲

将军-技术演讲力教练

[Pulsar] JWT认证的原理

Zike Yang

Apache Pulsar 12月日更

架构实战营 - 毕业总结

en

#架构实战营

『新华报』飞艇分析工具[手机乐乎]

天马行空

飞艇分析工具

趣谈“链路追踪组件” Skywalking 和 PinPoint

悟空聊架构

链路追踪 Skywalking 28天写作 悟空聊架构 12月日更

复制流动改变世界

mtfelix

28天写作

圣迪

用错误的动作,让正确的事情发生(3/28)

赵新龙

28天写作

Java应用线上事故排查实战

JavaEdge

内容合集 签约计划第二季

2.《重学JAVA》--初探JAVA

杨鹏Geek

「Java 25周年」 28天写作 12月日更

『新华报』北京飞艇赛车微信群[手机乐乎]

天马行空

北京飞艇赛车微信群

Prometheus Exporter (十六)Microsoft SQL Server Exporter

耳东@Erdong

microsoft Prometheus 28天写作 exporter 12月日更

『新华报』回血上岸导师[手机乐乎]

天马行空

回血上岸导师

举重若轻流水行云,前端纯CSS3实现质感非凡的图片Logo鼠标悬停(hover)光泽一闪而过的光影特效

刘悦的技术博客

CSS html css3 LOGO HTML5, CSS3

一图看懂软件缺陷检查涉及的内容

Tom(⊙o⊙)

软件安全 静态代码检查

『新华报』一分飞艇怎么操作的[手机乐乎]

天马行空

一分飞艇怎么操作的

linux重要的目录之proc和dev目录

入门小站

Linux

SQL Server 2011中基于列的存储方式_.NET_Jonathan Allen_InfoQ精选文章