我有一个需要很长时间执行的报告。我运行了数据库引擎优化顾问,其中一项建议是创建2个索引。但是,我注意到这些索引是相同的列,但顺序不同。SQL Server 2005按不同顺序将相同的列索引
下面是表:
---Locations---
| *LocationID |
| Code |
| ...more... |
| DivisionID |
| RegionID |
---------------
和建议是添加这些2个指标
CREATE NONCLUSTERED INDEX [IX_Locations_Region_Loc_Div] ON [dbo].[Locations]
(
[RegionID] ASC,
[LocationID] ASC,
[DivisionID] ASC
)
INCLUDE ([Code]) WITH (SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_Locations_Loc_Reg_Div] ON [dbo].[Locations]
(
[LocationID] ASC,
[RegionID] ASC,
[DivisionID] ASC
)
INCLUDE ([Code]) WITH (SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF) ON [PRIMARY]
GO
为什么会在SQL Server必须当他们是不同的顺序这3个的索引仅用于内部连接?
SELECT UserID, LocationID FROM [User] u INNER JOIN [Locations] l ON u.LocationID = l.LocationID