2017-03-16 18 views
1

我想弄清楚的列存储索引在SQL Server中如何工作的胆量。我正在寻找的是针对Columnstore索引的底层存储和附带搜索算法的技术参考指南或白皮书,特别是关于SQL 2016(与以前版本不同)。我甚至不知道这个算法/​​设计是否有一个正式的学术名称,因为我没有在我审查过的Microsoft文档中找到任何类似的算法/设计。什么是底层的存储和搜索算法用于SQL Server索引列存储

什么我关于传统rowstore指标后,我的等值是他们的底层存储和搜索算法是基于B +树。 B +树算法有大量的白皮书来消化。我所看到的有关Columnstore索引的唯一算法参考文献属于DeltaStore功能,它也是based on B+ Trees

我希望底层存储和搜索算法是不是专有的,我的谷歌技能只是没有我,但如果事实证明这是专有的,知道这将有助于平息我的好奇心。任何帮助,将不胜感激!

回答

0

在这一点上,我遇到的最好的资源是列式存储The-Paper-Trail.org的博客文章。它没有涉及搜索算法背后的细节,但它对底层存储背后有一些很好的解释以及对学术白皮书的额外参考。如果其他人对这些东西感兴趣,我强烈建议您尽早回顾一下此页面,而不是稍后。

编辑:进一步阅读后,它看起来像Columnstore索引的“搜索算法”基本上是索引的香草扫描,减去任何Rowstore消除和列消除。通过在高压缩数据的批处理模式下执行扫描操作(由于按列存储模型),并且根据查询,聚合和字符串谓词下推优化可进一步限制从磁盘提取的记录,从而使扫描操作更加高效。 Columnstore indexes - query performance

这两个资源结合起来,可以很好地了解封面内容,因此如果您有兴趣,请给他们看看。最后,建议一句话;忽略或忽略SQL 2016发布之前发布的大部分文献,因为在过去的3个SQL Server版本中,很多基础术语和逻辑发生了重大变化,并且我不建议任何人使用比2016年早的任何东西if你将使用这个功能。

编辑2:我发现一篇文章Microsoft确认Columnstore索引不是B +树。

0

关于这对大把大把的钱销售的产品的内部数据结构什么也不会公布完整的详细信息。对于SQL Server,有来自MSFT的书籍,例如this one,它们讨论内部。

是找出你到底想要什么细节:因人而异。

+0

这本书遗憾地没有深入我对这个主题感兴趣的细节。不过这本书很好。 –

+0

另一个来源是msdn的一组cloud9视频。产品的开发人员和建筑师有时会在那里详细介绍。 – user1952500

相关问题