実行に時間がかかっていたレポートがあります。私はデータベース・エンジン・チューニング・アドバイザーを実行し、推奨事項の1つは2つの索引を作成することでした。しかし、インデックスは同じ列であるが、異なる順序であることに気付いた。SQL Server 2005で同じ列を異なる順序でインデックス化しています
---Locations---
| *LocationID |
| Code |
| ...more... |
| DivisionID |
| RegionID |
---------------
とSQL Serverは、彼らがある時に異なる順序でこれら3列のインデックスを持っている必要がありますなぜ勧告は、これら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
を追加しました:ここ
は表です内部結合にのみ使用されますか?
SELECT UserID, LocationID FROM [User] u INNER JOIN [Locations] l ON u.LocationID = l.LocationID