我正在学习Column Store索引(Denali CTP3功能),并且知道它使用VertiPaq架构进行数据压缩。我有兴趣知道它是什么,它是如何工作的,它的架构。我在谷歌检查但没有令人满意的结果。任何人都可以详细告诉我它是什么,它是如何工作的,这背后的算法/架构等等。
它如何帮助进行数据压缩
答案 0 :(得分:4)
我写了一篇博文,希望能回答你关于列商店索引的问题: http://www.jamesserra.com/archive/2011/08/sql-server-%e2%80%9cdenali%e2%80%9d-project-apollo/
如果您仍有疑问,请与我们联系。
答案 1 :(得分:1)
它如何帮助进行数据压缩
压缩部分运行良好,因为同一列中的数据通常不会有太大变化。想象一下,例如(简化)一个存储来自多(4)个选择输入的值的列。即使表中有800万条记录,列存储中也只有4个唯一值。这使得列值更容易压缩。这反过来使索引更容易适应内存,因此查询速度更快。
当数据以列方式存储时,数据通常可以 比以行方式存储时更有效地压缩。 通常,列内的冗余比行内更多, 这通常意味着数据可以被更大程度地压缩。 当数据压缩得更多时,获取数据所需的IO更少 进入记忆。此外,大部分数据都可以驻留在其中 给定大小的内存。减少IO可以显着加快查询速度 响应时间。在内存中保留更多的工作数据集 将加快访问后续查询的响应时间 相同的数据。