Ik heb een importhulpprogramma op dezelfde fysieke server als mijn SQL Server-instantie. Een aangepaste IDataReader
gebruiken , het ontleedt platte bestanden en voegt ze in een database in met behulp van SQLBulkCopy
. Een typisch bestand heeft ongeveer 6 miljoen gekwalificeerde rijen, gemiddeld 5 kolommen met decimalen en korte tekst, ongeveer 30 bytes per rij.
Gezien dit scenario vond ik een batchgrootte van 5.000 het beste compromis tussen snelheid en geheugenverbruik. Ik begon met 500 en experimenteerde met groter. Ik vond 5000 gemiddeld 2,5x sneller dan 500. Het invoegen van de 6 miljoen rijen duurt ongeveer 30 seconden met een batchgrootte van 5.000 en ongeveer 80 seconden met een batchgrootte van 500.
10.000 was niet meetbaar sneller. Verplaatsen naar 50.000 verbeterde de snelheid met een paar procentpunten, maar het is de verhoogde belasting van de server niet waard. Boven de 50.000 vertoonden geen verbeteringen in snelheid.
Dit is geen formule, maar het is een ander gegevenspunt dat u kunt gebruiken.