Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Berapa ukuran batch yang direkomendasikan untuk SqlBulkCopy?

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server 2008:bagaimana cara memberikan hak istimewa ke nama pengguna?

  2. Apa praktik terbaik untuk menggunakan GUID sebagai kunci utama, khususnya terkait kinerja?

  3. Cara memperbarui kunci utama

  4. UNTUK XML PATH(''):Keluar dari karakter khusus

  5. MS Access memanggil prosedur tersimpan SQL Server