Inserisci solo l'indice :S È meglio lasciare gli schemi di solo inserimento senza alcun indice, ma avere un indice su una tabella danneggerà le prestazioni delle tue operazioni di inserimento.
Che dire della creazione di un indice su feeditem_id
e effectiveDateUTC
campi qualcosa come
CREATE NONCLUSTERED INDEX NIX_feeditem_id_effectiveDateUTC
ON dbo.spotquotes(feeditem_id ASC, effectiveDateUTC DESC)
GO
e ora scrivi la tua query qualcosa come .....
;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
O
Crea un indice come segue
CREATE NONCLUSTERED INDEX NIX_feeditem_id_Id
ON dbo.spotquotes(feeditem_id ASC, ID DESC)
GO
Interroga
;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