SQL インデックスで高速化

数十万行から、目的の条件の最新データを1件探す。
通常、2分程度かかっていたが、インデックスで
1秒に短縮できた。
 
インデックスのクリエイト
CREATE INDEX getLastData
ON dbo.pVr_T_MEV
(
Site,Line,Machine,MEV_NAME
)
GO
 
結果
DECLARE @Site nvarchar(20) = 'P101'
DECLARE @Line nvarchar(20) = 'B'
DECLARE @Machine nvarchar(20) = 'Machine3'
SELECT TOP (1) [MEV_NAME]
   
  FROM [dbo].[pVr_T_MEV]
  where Site = @Site
  and Line = @Line
  and Machine = @Machine
  order by MEV_NAME DESC
 

クリエイト結果のインデックスは SQLが更生
CREATE NONCLUSTERED INDEX [getLastData] ON [dbo].[pVr_T_MEV]
(
[Site] ASC,
[Line] ASC,
[Machine] ASC,
[MEV_NAME] ASC
)WITH (STATISTICS_NORECOMPUTE = OFF, DROP_EXISTING = OFF, ONLINE = OFF, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
GO