【发布时间】:2012-03-29 04:58:51
【问题描述】:
假设我有一个表 tbl_FacilityOrders,在 SQL Server 2005 中有两个外键 fk_FacilityID 和 fk_OrderID。它可以包含来自数百个设施的订单。我需要查询单个记录,并且我可以使用 facilityID 和 orderID。在 fk_FacilityID 然后 fk_OrderID 上定义索引并将两者都传递给查询还是只使用 fk_OrderID 更好。由于设施 ID 比订单 ID 少,我可以看到首先清除其他设施的记录可能是有益的。
第二个问题是,如果我使用上面的两列查询,我编写 WHERE 子句列的顺序是否重要,或者引擎是否足够聪明,可以按照索引的顺序评估它们?
例如是:
WHERE fk_facilityID = @FacilityID AND fk_OrderID = @OrderID
相当于:
WHERE fk_OrderID = @OrderID AND fk_FacilityID = @FacilityID
?
【问题讨论】:
标签: sql-server-2005 tsql indexing