Mám nástroj pro import umístěný na stejném fyzickém serveru jako moje instance SQL Server. Pomocí vlastního IDataReader
analyzuje ploché soubory a vloží je do databáze pomocí SQLBulkCopy
. Typický soubor má asi 6 milionů kvalifikovaných řádků, v průměru 5 sloupců desítkového a krátkého textu, asi 30 bajtů na řádek.
Vzhledem k tomuto scénáři jsem zjistil, že velikost dávky 5 000 je nejlepším kompromisem rychlosti a spotřeby paměti. Začal jsem s 500 a experimentoval s většími. Zjistil jsem, že 5000 je v průměru 2,5x rychlejší než 500. Vložení 6 milionů řádků trvá asi 30 sekund při velikosti dávky 5000 a asi 80 sekund při velikosti dávky 500.
10 000 nebylo měřitelně rychlejší. Přesun až na 50 000 zvýšil rychlost o několik procentních bodů, ale za zvýšené zatížení serveru to nestojí. Nad 50 000 nevykazovalo žádné zlepšení rychlosti.
Toto není vzorec, ale je to další datový bod, který můžete použít.