我有这个场景:
TableA: +2M rows.
TableB: +60K rows.
我需要INNER JOIN
两个字段([Month] AS INT, [Year] AS INT)
。{/ p>
我正在寻求提高该查询的性能;为此我可以为[Month, Year]
创建一个索引,或者我可以为[Month]
和[Year]
创建两个sepparate索引。我应该考虑选择这两种方法中的哪一种?
答案 0 :(得分:3)
您是否会在不搜索year
的情况下搜索month
?如果没有搜索month
来搜索year
呢?
如果您在不搜索其他列的情况下永远不会搜索其中一列,则创建包含两列的索引。
如果您只搜索month
,month
和year
,请为month
,year
创建一个索引,并注明month
1}}是索引的前沿。
如果您有时会单独搜索每一列,请创建两个单独的索引,每列一个...如果同时搜索这两个列,Sql Server可以有效地使用这两个索引。