SQL 服务器分区和索引策略

SQL Server partitioning and index strategy

我正在寻找分区解决方案。而且,显然,我对它的性能方面很感兴趣。意味着,在有利于维护时间的同时不要让它变得太糟糕。 我的问题与我拥有的 table 之一有关。它看起来类似于

Id bigint IDENTITY PRIMARY KEY CLUSTERED,
DatetimeFiled,
/*
    a lot of other fields
*/

根据数据结构和用法,将table按DatetimeFiled(经典)拆分成分区是suitable,因为我在这个table上有按日期过滤. 但我也有 Id 过滤器。此外,我有使用 Id 字段作为谓词的 JOIN,现在受益于它的唯一性 (https://www.brentozar.com/archive/2015/08/performance-benefits-of-unique-indexes/)。

因此,我决定将 Id ,DatetimeFiled 用作 UNIQUE CLUSTERED INDEX

但我怀疑它是否仍然有益于通过 Id 字段进行 JOIN?
而且使用那种字段顺序可以吗,因为我看到分区字段经常排在第一位?

使用尾随聚集索引列作为分区列是一种常见且有用的方法。可以通过在每个分区中查找Clustered Index来按Id查找行,也可以通过分区排除按DatetimeFiled查找行。