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

Klyngede indekser på ikke-identitetskolonner for at fremskynde bulkinserts?

Nå, jeg har prøvet det, og at sætte et klynget indeks på de to "chunk-definerende" kolonner øger ydeevnen af ​​min tabel.

Indsættelse af en chunk er nu relativt hurtig i forhold til den situation, hvor jeg havde en clustered IDENTITY-nøgle, og omtrent lige så hurtigt, som da jeg ikke havde noget clustered index. Sletning af en del er hurtigere end med eller uden klynget indeks.

Jeg tror, ​​at det faktum, at alle de poster, jeg vil slette eller indsætte, garanteret er samlet på en bestemt del af harddisken, gør tabellerne hurtigere - det ville virke logisk for mig.

Opdater :Efter et års erfaring med dette design kan jeg sige, at for denne tilgang til at fungere, er det nødvendigt at planlægge regelmæssig genopbygning af alle indekserne (vi gør det en gang om ugen). Ellers bliver indekserne meget hurtigt fragmenterede, og ydeevnen går tabt. Ikke desto mindre er vi i gang med at migrere til et nyt databasedesign med partitionerede tabeller, som grundlæggende er bedre på alle måder - bortset fra Enterprise Server-licensomkostningerne, men vi har allerede glemt det nu. Det har jeg i hvert fald.



  1. Angivelse af kolonnealias med brugerdefineret variabel

  2. Hvordan får man kun numeriske kolonneværdier?

  3. Hvordan sender man e-mail fra SQL Server?

  4. Tjek om dette er duplikat