首页 > 解决方案 > 结合聚集列存储索引和非聚集列存储索引的好处?

问题描述

我遇到了一个关于在数据仓库中为大型事实表建立索引的问题,要求实现两个索引以优化性能,建议创建的答案是:

由于 CCI 包含表的所有列,我会认为组合两个列存储索引(一个聚集和一个非聚集)没有意义,而是选择:

(请参阅有关列存储索引设计指南的 Microsoft 文档

如果有的话,在 SQL Server 数据库/数据仓库中的大型事实表上组合两个列存储索引(一个集群索引和一个非集群索引)会有什么好处

触发我的问题的问题可以在此页面上找到,问题 70。我不知道我是否遗漏了什么或者他们的解决方案是否不准确。

如果有人可以帮助我,那就太好了!

标签: sql-serverindexingdata-warehouse

解决方案


由于 CCI 包含表的所有列,我原以为合并两个列存储索引是没有意义的

事实上,它甚至是不允许的。如果你尝试你会得到

Msg 35339, Level 16, State 1, Line 5
Multiple columnstore indexes are not supported.

问题

在此处输入图像描述

由于 Index1 包含所有数据并针对聚合进行了优化,因此它应该是一个聚集列存储索引。

所以他对 Index2 的正确答案是一个包含列的唯一非聚集索引,其中任何非键列都是包含的列。


推荐阅读