针对SQL Server临时表的存储优化----列式存储原创
金蝶云社区-CM9527
CM9527
1人赞赏了该文章 365次浏览 未经作者许可,禁止转载编辑于2022年05月30日 17:14:44

什么是列存储索引?

列存储索引是一种使用列式数据格式(称为“列存储”)存储、检索和管理数据的技术。

列存储

列存储是在逻辑上整理为包含行和列的表,实际上以列式数据格式存储的数据。

 行存储

行存储是在逻辑上整理为包含行和列的表,实际上以行式数据格式存储的数据。 此格式是存储关系表数据的传统方法。 在 SQL Server 中,行存储是指基础数据存储格式为堆、聚集索引或内存优化表的表。

为何要使用列存储索引?

列存储索引可实现极高的数据压缩级别(通常是传统方法的 10 倍),从而明显降低数据仓库存储成本。 对于分析,列存储索引实现的性能比 B 树索引高出一个量级。 列存储索引是数据仓库和分析工作负载的首选数据存储格式。 从 SQL Server 2016 (13.x)开始,可以使用列存储索引对操作工作负荷执行实时分析。

列存储索引速度较快的原因:

  • 列存储来自同一个域且通常相似的值,从而提高了压缩率。 最大限度地减少或消除系统中的 I/O 瓶颈,并显著降低内存占用量。

  • 较高的压缩率通过使用更小的内存中空间提高查询性能。 反过来,由于 SQL Server 可以在内存中执行更多查询和数据操作,因此可以提升查询性能。

  • 批处理执行可同时处理多个行,通常可将查询性能提高 2 到 4 倍。

  • 查询通常仅从表中选择几列,这减少了从物理介质的总 I/O。


如果我们使用的临时表数据量很大,并且只用于查询,就可以使用列存储方式,一方面可以降低存储的内存,另外一方面可以提升查询的性能。



图标赞 1
1人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!