Pengoptimuman Sisipan Pukal dalam SQL Server dengan C# Client
Anda mengalami masalah prestasi apabila memasukkan sebahagian besar data ke dalam pangkalan data SQL Server anda menggunakan SqlClient.SqlBulkCopy. Untuk mengoptimumkan proses, pertimbangkan penyelesaian berikut:
-
Lumpuhkan Kunci Utama: Menggugurkan kunci utama semasa pemasukan boleh meningkatkan prestasi dengan ketara, kerana pangkalan data tidak perlu mengekalkan integriti indeks semasa setiap sisipan baris. Dayakan semula kunci selepas import selesai.
-
Gunakan Jadual Sementara: Pertimbangkan untuk mencipta jadual sementara dengan skema yang sama seperti jadual sasaran. Sisipkan data secara pukal ke dalam jadual sementara, kemudian pindahkan baris secara berkala ke jadual utama menggunakan pencetus pemindahan. Ini mengekalkan saiz jadual utama yang agak kecil semasa proses import.
Pertimbangan Tambahan:
-
Indeks Tidak Berkelompok : Jika capaian data berjujukan tidak penting, pertimbangkan untuk menggunakan indeks kunci primer tidak berkelompok dan bukannya indeks berkelompok semasa import. Ini akan membolehkan data dimasukkan dengan lebih cekap.
-
Penjanaan Data Jauh: Jika data sedang dijana pada mesin jauh, pertimbangkan untuk mengalihkan proses sisipan pukal ke salah satu mesin jauh ke kurangkan overhed rangkaian.
-
Lumpuhkan Pertanyaan Serentak: Pastikan tiada pertanyaan serentak terhadap jadual sasaran semasa import untuk mengelakkan isu sekatan.
Sumber Tambahan:
- [Lumpuhkan/Dayakan Indeks](https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-index-transact-sql?view=sql-server-ver15)
- [Pemuatan Pukal Perbandingan](https://dba.stackexchange.com/questions/141254/some-bulk-loading-speed-comparisons)
- [SqlBulkCopy Pengoptimuman](https://docs.microsoft.com/en-us/sql/odbc/reference/syntax/sqlbulkcopy-methods?view=sql-server-2017)
- [Jadual Petua](https://docs.microsoft.com/en-us/sql/t-sql/queries/hints/table-hints-transact-sql?view=sql-server-ver15)
- [ INSERT Penyata](https://docs.microsoft.com/en-us/sql/t-sql/statements/insert-transact-sql?view=sql-server-ver15)
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengoptimumkan Sisipan Pukal ke dalam Pelayan SQL Menggunakan C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!
Kenyataan:Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn