3
期間が終了して開始される開始日と終了日を持つ会計期間に使用されるテーブルがあります。私は、期間テーブルの上の非クラスタ化インデックスを作成することが有益であろう、BETWEENに使用される日付列のノンクラスタード・インデックス
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
私の質問は...取引がサービスのために発生していると、収益はのようなクエリで収集されたときを決定するために、このテーブルを使用します日付の列?その場合は、インデックスにPeriodStart
とPeriodEnd
の両方か、またはPeriodStart
の列だけが含まれている必要があります。
ありがとうございます!
有用ではないだろう
Include
列のみPeriodStart
にインデックスを作成するヒープから検索を避けるために、あなたを助ける、列の両方にインデックスを作成することを提案しますここには正解か間違った答えがありません。それは、期間表の行数によって異なりますか?人口のどれくらいが返されますか?このクエリは現在遅いですか? –
現在、2008年から毎年12行が表示されます。だから、ほんのわずかしか使用されていませんが、私は現在2030年にテーブルを構築しています –
インデックスの開始と終了は実際のテーブルを叩く必要がなくなり、パフォーマンスが向上するはずですが、想像がつきませんby much –