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

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

关注

评论

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

代码编辑器 sublime text破解安装包 附sublime text汉化补丁

Rose

苹果Mac远程管理Royal TSX使用教程

Rose

转转平台IM系统架构设计与实践(一):整体架构设计

JackJiang

即时通讯;IM;网络编程

RUM实践-最大内容绘制(LCP)优化

乘云数字DataBuff

用户体验 运维监控 数字体验 RUM

递归算法实践--到仓合单助力京东物流提效增收

京东科技开发者

苹果Mac版SVN客户端 SnailSVN Pro 免激活版

Rose

Java分析工具 JProfiler for mac注册码及安装教程

Rose

iZotope音乐制作 Ozone Advanced 11直装版下载安装

Rose

【连载 10】CountDownLatch

FunTester

@你,请查收:KaiwuDB 2024 年度总结

KaiwuDB

数据库 分布式多模

Typeeto for Mac:让Mac键盘秒变蓝牙键盘,跨设备输入更高效

Rose

AIP智能体平台:赋能软件开发与运行的新时代

大东(AIP智能体运营专员)

人工智能

企业流程自动化:AI技术加持,解锁高效运营

合合技术团队

人工智能 AI 自动化 数据治理

MestReNova 14:精准解析NMR数据,助力科研突破!

Rose

定制 CRM 的4个真实用户案例(帮你选择更灵活CRM产品)

NocoBase

开源 CRM 定制化 CRM系统 案例研究

BOE(京东方)全新概念级“AI视听中心”亮相CES 2025 携手高通引领智慧家居娱乐新图景

爱极客侠

WebGL开发虚拟解剖系统

北京木奇移动技术有限公司

软件外包公司 webgl开发 医学解剖

企业如何实现多源异构数据的统一化管理?

Aloudata

数据分析 数据管理 数据集成 数据虚拟化 数据编织

数据集成和分析时,应该注意哪些关键因素?

Aloudata

数据分析 数据虚拟化 数据编织

淘宝天猫API接口深度解析:商品详情与关键词搜索商品列表的高效应用

代码忍者

KubeEdge SIG AI 产业革新与应用:跨越边界,迎向未来

华为云原生团队

云计算 容器 云原生

Set A Light 3D Studio:打造专业级3D灯光布局,摄影布光从此得心应手

Rose

观测云产品更新 | 日志索引、Pipeline、场景图表等优化

观测云

产品迭代

WebGL在医学领域的应用

北京木奇移动技术有限公司

软件外包公司 webgl开发 医学领域

一个测试Leader的工作案例

老张

团队管理 项目管理 软件测试 自动化测试

语音技术与人工智能:智能语音交互的多场景应用探索

天津汇柏科技有限公司

AI 人工智能

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