실행하는 데 시간이 오래 걸린 보고서가 있습니다. 필자는 데이터베이스 엔진 조정 권고자를 실행했으며 권장 사항 중 하나는 2 개의 인덱스를 만드는 것이 었습니다. 그러나 색인이 동일한 열이지만 다른 순서로 나타났습니다. 여기 SQL Server 2005에서 같은 열을 다른 순서로 인덱싱합니다.
는 테이블 :---Locations---
| *LocationID |
| Code |
| ...more... |
| DivisionID |
| RegionID |
---------------
과 추천
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 서버는 그들이 다른 순서에있는이 3 열 인덱스를 가질 필요가 이들 2 개 인덱스 추가했다 내부 조인에만 사용됩니까?
SELECT UserID, LocationID FROM [User] u INNER JOIN [Locations] l ON u.LocationID = l.LocationID