sql >> Databasteknik >  >> RDS >> Sqlserver

Klustrade index på icke-identitetskolumner för att påskynda massinsättningar?

Nåväl, jag har testat det, och om jag sätter ett klustrat index på de två "klumpdefinierande" kolumnerna ökar prestandan för min tabell.

Att infoga en bit går nu relativt snabbt jämfört med situationen där jag hade en klustrad IDENTITY-nyckel, och ungefär lika snabbt som när jag inte hade något klustrat index. Att ta bort en bit är snabbare än med eller utan klustrade index.

Jag tror att det faktum att alla poster jag vill ta bort eller infoga garanterat finns samlade på en viss del av hårddisken gör tabellerna snabbare - det verkar logiskt för mig.

Uppdatera :Efter ett års erfarenhet av den här designen kan jag säga att för att detta tillvägagångssätt ska fungera är det nödvändigt att schemalägga regelbunden ombyggnad av alla index (vi gör det en gång i veckan). Annars blir indexen fragmenterade mycket snart och prestanda går förlorad. Ändå är vi i en process av migrering till en ny databasdesign med partitionerade tabeller, som i princip är bättre på alla sätt - förutom Enterprise Server-licenskostnaden, men vi har redan glömt det vid det här laget. Åtminstone har jag.



  1. Hur man genererar ett entity-relationship (ER) diagram med Oracle SQL Developer

  2. skapa schemauppgift utan Cron-jobb

  3. SQL #1064 när du använder phpMyAdmin

  4. dynamiskt dropdown i nodejs mysql