sql >> Database teknologi >  >> RDS >> Sqlserver

Passende SQL-serverindeks til kun at indsætte skema

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

  1. Nummerseriegenerator-udfordringsløsninger – Del 1

  2. Vælg CIDR, der er inden for IP-området

  3. Omdøbning af fremmednøglekolonner i MySQL

  4. Indsættelse af data i flere tabeller PHP MySQL