Имам помощна програма за импортиране на същия физически сървър като моята инстанция на SQL Server. Използване на персонализиран IDataReader
, анализира плоски файлове и ги вмъква в база данни с помощта на SQLBulkCopy
. Типичният файл има около 6 милиона квалифицирани реда, средно 5 колони с десетичен и кратък текст, около 30 байта на ред.
Като се има предвид този сценарий, установих, че размерът на партидата от 5000 е най-добрият компромис от скоростта и консумацията на памет. Започнах с 500 и експериментирах с по-големи. Открих, че 5000 са 2,5 пъти по-бързи средно от 500. Вмъкването на 6 милиона реда отнема около 30 секунди с размер на партидата от 5000 и около 80 секунди с размер на партидата от 500.
10 000 не бяха измеримо по-бързи. Преместването до 50 000 подобри скоростта с няколко процентни пункта, но не си струва увеличеното натоварване на сървъра. Над 50 000 не показаха подобрения в скоростта.
Това не е формула, но е друга точка от данни, която можете да използвате.