内连接使用两个字段:使用一个或两个索引?

时间:2012-11-20 21:05:34

标签: sql-server

我有这个场景:

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

我需要INNER JOIN两个字段([Month] AS INT, [Year] AS INT)。{/ p>

我正在寻求提高该查询的性能;为此我可以为[Month, Year]创建一个索引,或者我可以为[Month][Year]创建两个sepparate索引。我应该考虑选择这两种方法中的哪一种?

1 个答案:

答案 0 :(得分:3)

您是否会在不搜索year的情况下搜索month?如果没有搜索month来搜索year呢?

如果您在不搜索其他列的情况下永远不会搜索其中一列,则创建包含两列的索引。

如果您只搜索monthmonthyear,请为monthyear创建一个索引,并注明month 1}}是索引的前沿。

如果您有时会单独搜索每一列,请创建两个单独的索引,每列一个...如果同时搜索这两个列,Sql Server可以有效地使用这两个索引。