是否建议在聚簇列存储表中的列上使用非聚簇索引

时间:2017-08-22 14:29:18

标签: sql-server tsql indexing sql-server-2016 clustered-index

我在数据仓库方案中使用群集列存储索引(CCI)存储了许多表。因此,表中的所有列都以列式格式存储。

问题是:何时(如果有的话)建议在CCI表中的列或列集上还有非聚集索引?是否每个列都单独存储足以使特定列上的索引创建冗余?或者CCI表的索引策略是否与非CCI表相似?

一个例子:

  • 表:StudentsIdNameSchoolId等)
  • 表:SchoolsIdNameDistrictId等)
  • 表:DistrictsIdName等)

在非CCI场景中,所有三个表都将Id作为主键(因此这些将是聚簇索引)并且我会将非聚簇索引放在外键上({{1} },SchoolID)。此外,如果有很多列,并且我的结果中经常包含DistrictId,我可能会在索引中添加Name部分。

如果我将Clustered Columnstore Indexes添加到这些表中,我显然不再拥有表的聚簇索引(PK)。但我是否应该保持以前的索引策略呢?

0 个答案:

没有答案