Saya memiliki utilitas impor yang berada di server fisik yang sama dengan instance SQL Server saya. Menggunakan IDataReader
khusus , ia mem-parsing file datar dan memasukkannya ke dalam database menggunakan SQLBulkCopy
. File tipikal memiliki sekitar 6 juta baris yang memenuhi syarat, rata-rata 5 kolom desimal dan teks pendek, sekitar 30 byte per baris.
Dengan skenario ini, saya menemukan ukuran batch 5.000 sebagai kompromi terbaik dari kecepatan dan konsumsi memori. Saya mulai dengan 500 dan bereksperimen dengan yang lebih besar. Saya menemukan 5000 menjadi 2.5x lebih cepat, rata-rata, dari 500. Memasukkan 6 juta baris membutuhkan waktu sekitar 30 detik dengan ukuran batch 5.000 dan sekitar 80 detik dengan ukuran batch 500.
10.000 tidak terukur lebih cepat. Bergerak hingga 50.000 meningkatkan kecepatan dengan beberapa poin persentase tetapi tidak sebanding dengan peningkatan beban di server. Di atas 50.000 tidak menunjukkan peningkatan kecepatan.
Ini bukan rumus, tetapi titik data lain untuk Anda gunakan.