Indsæt kun indeks :S I tynde indsættelsesskemaer er bedst at efterlade uden nogen indekser, men at have noget indeks på en tabel vil skade ydeevnen af dine indsætningsoperationer.
Hvad med at oprette et indeks på feeditem_id
og effectiveDateUTC
felter noget som
CREATE NONCLUSTERED INDEX NIX_feeditem_id_effectiveDateUTC
ON dbo.spotquotes(feeditem_id ASC, effectiveDateUTC DESC)
GO
og skriv nu din forespørgsel som .....
;WITH LastestRecords
AS(
SELECT Id
,feeditem_id
,value_ask
,value_bid
,effectiveDateUTC
,ROW_NUMBER() OVER (PARTITION BY feeditem_id ORDER BY ffectiveDateUTC DESC) AS RN
FROM spotquotes
)
SELECT Id
,feeditem_id
,value_ask
,value_bid
,effectiveDateUTC
FROM LastestRecords
WHERE RN = 1
ELLER
Opret et indeks som følger
CREATE NONCLUSTERED INDEX NIX_feeditem_id_Id
ON dbo.spotquotes(feeditem_id ASC, ID DESC)
GO
Forespørgsel
;WITH LastestRecords
AS(
SELECT Id
,feeditem_id
,value_ask
,value_bid
,effectiveDateUTC
,ROW_NUMBER() OVER (PARTITION BY feeditem_id ORDER BY Id DESC) AS RN
FROM spotquotes
)
SELECT Id
,feeditem_id
,value_ask
,value_bid
,effectiveDateUTC
FROM LastestRecords
WHERE RN = 1