我有一个沿PeriodDate列分区的事实表。
CREATE TABLE MyFactTable
(
PeriodDate DATE,
OrderID INT
CONSTRAINT MyFk FOREIGN KEY (OrderID) REFERENCES DimOrder(ID)
)
我想在列上创建一个分区对齐索引OrderID,正如我从 BOL 中了解到的那样,我需要包含分区键 ( PeriodDate) 以使索引对齐。
像这样:
CREATE NONCLUSTERED INDEX MyAlignedOrderIdIndex
ON MyFactTable (OrderID, PeriodDate);
我的问题是:我应该以什么顺序将两列放在上面的索引中?
ON MyFactTable (OrderID, PeriodDate);
或者
ON MyFactTable (PeriodDate, OrderID);
正如我在 BOL 上所读到的,复合索引中的顺序也很重要,我的查询通常用于OrderID查找 Dim 表数据。
一OrderID, PeriodDate阶似乎是合乎逻辑的选择,但由于我不熟悉分区,我不知道当表有数百万行时它会如何“喜欢它”。
最佳实践在这里规定了什么?