sql-server - 如何结合索引和列存储索引?

标签 sql-server indexing clustered-index non-clustered-index columnstore

我对实现最佳实践感到困惑,我有一个包含很多字段的表,每个字段都需要聚合以用于分析和报告目的,但有时我们还需要获取行基础记录。

实现 PRIMARY KEY + NON CLUSTERED COLUMNSTORE INDEX 或 NOT NULL UNIQUE NONCLUTERED + 聚集列存储索引会更好吗?

最佳答案

这一切都取决于具体情况;您的数据是什么样的以及您将如何搜索该数据。

每个表肯定需要一个主键。 PK 是否需要聚集取决于您是否有更适合放置聚集索引的列。 (聚集索引应该放置在其值不会改变且增量增加的列上,这意味着下一个值应该高于前一个值)。

在哪里放置索引、索引的类型、索引中列的顺序以及是否需要“包含列”都取决于具体情况,您需要对此进行一些分析。

关于sql-server - 如何结合索引和列存储索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50149107/

相关文章:

更改列格式的 SQL 函数

sql-server - SQL Server : Clustered index on datetime, ASC 或 DESC

sql-server - 聚集索引和非聚集索引 - SQL Server 和 Oracle?

mysql - 我可以有一个没有聚簇索引的主键吗?我还可以拥有多值聚簇索引吗?

sql - 无法将月份数字转换为名称

c# - 无法将参数值从SqlParameter转换为String

sql-server - 用于审核的 ORIGINAL_LOGIN 和 SYSTEM_USER 函数?

sql-server - 没有主键的表

python pandas indexing matplot 省略图中的一个索引

mysql - 请帮我优化包含几百条记录的子查询的mysql查询