1

我有大约 600 000 行和 20 列的仓库表。行数往往增长得相当快。我通常只需要执行这个查询:

SELECT * FROM MyTable WHERE EventDate BETWEEN @Date1 AND @Date2

目前我只是在主键上聚集了索引,没有更多的索引。这个返回大约 200 000 行的一年查询执行大约 6 分钟,这对我来说真的很慢。列存储索引可以帮助我,将它放在哪一列,包括哪些列?

4

1 回答 1

0

您在寻找聚集列存储索引还是非聚集列存储索引?如果它是聚集列存储索引,您将为所有列编制索引。在正常情况下,您可能不需要'Select *' 重新审视为什么在所有情况下都需要'select *'?不过,如果它是数据仓库工作负载,集群列存储会更快。

Create clustered columnstore index CI_tbl on tablename

你用的是哪个版本的sql server?此功能在 SQL 2014 中可用,在 2012 中您可能需要使用非聚集列存储索引。

于 2016-08-25T13:01:40.833 回答