我在数据仓库方案中使用群集列存储索引(CCI)存储了许多表。因此,表中的所有列都以列式格式存储。
问题是:何时(如果有的话)建议在CCI表中的列或列集上还有非聚集索引?是否每个列都单独存储足以使特定列上的索引创建冗余?或者CCI表的索引策略是否与非CCI表相似?
一个例子:
Students
(Id
,Name
,SchoolId
等)Schools
(Id
,Name
,DistrictId
等)Districts
(Id
,Name
等)在非CCI场景中,所有三个表都将Id
作为主键(因此这些将是聚簇索引)并且我会将非聚簇索引放在外键上({{1} },SchoolID
)。此外,如果有很多列,并且我的结果中经常包含DistrictId
,我可能会在索引中添加Name
部分。
如果我将Clustered Columnstore Indexes添加到这些表中,我显然不再拥有表的聚簇索引(PK)。但我是否应该保持以前的索引策略呢?