Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengoptimumkan Kemasukan Jadual Data ke dalam Pangkalan Data untuk Kelajuan Maksimum?
Mempercepatkan Jadual Data ke Import Pangkalan Data: Amalan Terbaik
Mengimport set data yang besar daripada Jadual Data ke dalam pangkalan data memerlukan teknik yang cekap untuk meminimumkan masa pemprosesan. Walaupun sisipan baris demi baris menggunakan gelung foreach
ialah pendekatan biasa, ia tidak cekap untuk set data yang banyak.
Penyelesaian unggul ialah SqlBulkCopy
, menawarkan prestasi yang dipertingkatkan dengan ketara tanpa memerlukan prosedur tersimpan.
Melaksanakan SqlBulkCopy
agak mudah. Mulakan dengan mencipta sambungan pangkalan data, menggunakan SqlBulkCopyOptions.KeepIdentity
untuk mengekalkan lajur identiti.
Seterusnya, petakan lajur Jadual Data ke lajur jadual pangkalan data yang sepadan menggunakan sifat ColumnMappings
.
Akhir sekali, nyatakan jadual destinasi dan gunakan kaedah WriteToServer
untuk memindahkan data Jadual Data.
Berikut ialah contoh kod yang menggambarkan SqlBulkCopy
penggunaan:
<code class="language-csharp">using (var bulkCopy = new SqlBulkCopy(_connection.ConnectionString, SqlBulkCopyOptions.KeepIdentity)) { // Map columns between DataTable and SQL table foreach (DataColumn col in table.Columns) { bulkCopy.ColumnMappings.Add(col.ColumnName, col.ColumnName); } bulkCopy.BulkCopyTimeout = 600; // Increased timeout for large datasets bulkCopy.DestinationTableName = destinationTableName; bulkCopy.WriteToServer(table); }</code>
Menggunakan SqlBulkCopy
secara mendadak meningkatkan kelajuan pemasukan data, membawa kepada prestasi optimum apabila berurusan dengan Jadual Data yang besar. Ingat untuk melaraskan BulkCopyTimeout
seperti yang diperlukan untuk set data yang sangat besar.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengoptimumkan Kemasukan Jadual Data ke dalam Pangkalan Data untuk Kelajuan Maksimum?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!