繁体   English   中英

SQL Server-具有数百万行的FACT表上的聚集索引关键字问题

[英]SQL Server - Clustered Index Key Issue on FACT Table with millions of rows

我们有一个FACT表,它具有237383163行数,并且有很多重复数据。

在针对该表运行查询时,它对这么多行进行SCAN扫描,导致执行时间较长(bocs,我们尚未创建聚簇索引)。

有人可以建议的方式-使用现有字段的某种组合以及添加任何新字段(例如身份列)来创建集群键

在表上创建非聚集索引也没有帮助。

问候

想法:

  • 添加非唯一的聚集索引将需要一个4字节的唯一符
  • 添加代理IDENTITY列将使您重复
  • 聚集索引最好是窄索引和数字索引,特别是如果您有非聚集索引

首先,重复数据删除

然后,我将基于是否存在非聚集索引来考虑两件事之一

  1. 如果没有NC索引,请在部分或全部FACT列上创建唯一的聚集索引
  2. 使用NC索引,创建一个IDENTITY列,并将其用作聚簇索引。 在FACT列上创建唯一的NC索引

选项1在磁盘上要小得多。 我之前已经针对十亿多行的事实表进行了此操作,它缩小了65%。 没有NC索引。

这两个选项都需要进行测试,以查看对负载和响应时间等的影响

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM