服务热线:

4006-6500-28

新闻资讯
联系我们

电话:400-665-0028


您当前位置:首页 > 新闻资讯  > 知识学习 > 正文知识学习
针对金蝶SQL Server临时表的存储优化----列式存储
添加时间:2022-6-1

什么是列存储索引?

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


列存储

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


行存储

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


为何要使用列存储索引?

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


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

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

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

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

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


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