3

私はこのシナリオを持っています:

TableA: +2M rows.
TableB: +60K rows.

私はINNER JOIN2つのフィールドでそれらをする必要があります([Month] AS INT, [Year] AS INT)

そのクエリのパフォーマンスを改善しようとしています。そのために、 のインデックスを作成する[Month, Year]か、 と の 2 つの個別のインデックスを作成でき[Month]ます[Year]。これら 2 つのアプローチのいずれかを選択するには、どのような基準を考慮する必要がありますか?

4

1 に答える 1

3

yearも検索せずに検索することはありmonthますか? を検索monthせずに検索するのはyearどうですか?

これらの列のいずれかを検索せずにもう一方を検索しない場合は、両方の列を含むインデックスを作成してください。

month、 またはmonthおよびのみを検索する場合は、year、 のインデックスを作成します。これがインデックスの先頭であることに注意してください。monthyearmonth

時々各列を個別に検索する場合は、列ごとに 1 つずつ、2 つの個別のインデックスを作成します...両方の列を同時に検索する場合、Sql Server はこれらの両方のインデックスを効果的に使用できます。

于 2012-11-20T21:09:23.877 に答える