数十万行から、目的の条件の最新データを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