我有一个用于财政期间的表格,其中包含期间结束和开始的开始和结束日期。我使用此表来确定服务的交易何时发生,并且收入已在查询中收集,例如......
SELECT p.PeriodID, p.FiscalYear, SUM(t.Amount) AS Revenue
FROM Transactions t
JOIN Period p ON t.TransactionDate BETWEEN p.PeriodStart AND p.PeriodEnd
我的问题是,在Period表上为日期列创建非聚集索引是否有益?如果是,则索引应包含PeriodStart
和PeriodEnd
还是PeriodStart
列。
提前致谢!
答案 0 :(得分:4)
我建议你在两个列上创建索引
CREATE NONCLUSTERED INDEX IX_Period
ON Period (PeriodStart, PeriodEnd)
include (PeriodID, FiscalYear);
Include
列将帮助您避免从堆中查找
仅在PeriodStart
上创建索引将无用