我有一个沿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
阶似乎是合乎逻辑的选择,但由于我不熟悉分区,我不知道当表有数百万行时它会如何“喜欢它”。
最佳实践在这里规定了什么?