我应该为两个方向定义索引

时间:2014-05-26 02:18:55

标签: sql sql-server indexing

使用SQL Server 2012.假设我有一个链接表& amp;大小

该表可能看起来像

itemSize

itemSizeId (int)
itemId (int)
sizeId (int)

如果我在itemId & sizeId上定义一个复合索引,以便我可以按大小快速查找项目,还应该为sizeId & itemId定义一个索引,还是第一个索引覆盖的备用方向? / p>

1 个答案:

答案 0 :(得分:3)

您应该根据要在其上使用的查询来定义索引。

如果您想进行以下查询:

where itemId = @itemId

和     其中size = @size

(并且这两个字段没有其他条款),那么你应该有两个不同的索引。

如果您希望SQL Server将索引用于其他目的,例如order by,则也是如此。