Mengoptimumkan Operasi Sisipan Pukal dalam MS SQL Server menggunakan pyodbc
Cabaran memasukkan volum besar data secara cekap ke dalam MS SQL Server daripada kod Python menggunakan pyodbc memerlukan pertimbangan yang teliti. Walaupun melaksanakan sisipan individu secara berulang mungkin kelihatan mudah, ia boleh mengakibatkan kesesakan prestasi yang ketara, terutamanya apabila berurusan dengan set data lebih 1,300,000 baris.
Satu penyelesaian yang berpotensi ialah memanfaatkan arahan T-SQL BULK INSERT, yang boleh dengan ketara. mempercepatkan pengambilan data. Walau bagaimanapun, pendekatan ini memerlukan fail data untuk ditempatkan pada mesin yang sama dengan contoh SQL Server atau di lokasi rangkaian yang boleh diakses oleh pelayan. Jika syarat ini tidak dapat dipenuhi, pilihan alternatif mesti diterokai.
Meneroka Ciri Fast ExecuteMany pyodbc
Pyodbc versi 4.0.19 memperkenalkan teknik pengoptimuman prestasi yang berkuasa: Kursor# cepat_laksanakan banyak. Dengan mendayakan ciri ini, sambungan pangkalan data boleh melaksanakan berbilang pelaksanaan parameter berkelompok dalam satu perjalanan pergi balik ke pelayan.
Untuk menggunakan fast_executemany, cuma tambahkan baris berikut pada kod anda:
<code class="python">crsr.fast_executemany = True</code>
Tetapan ini boleh meningkatkan kelajuan pemasukan secara mendadak. Dalam ujian penanda aras, 1000 baris telah dimasukkan ke dalam pangkalan data dalam masa lebih 1 saat sahaja dengan fast_executemany didayakan, berbanding 22 saat tanpa pengoptimuman ini.
Mengoptimumkan Pelaksanaan Gelung
Selain menggunakan fast_executemany, terdapat strategi tambahan untuk memperhalusi prestasi pelaksanaan gelung anda.
Dengan melaksanakan pengoptimuman ini, anda boleh mempercepatkan secara mendadak proses memasukkan volum data yang besar ke dalam MS SQL Server menggunakan pyodbc.
Atas ialah kandungan terperinci Bagaimanakah saya boleh mengoptimumkan operasi sisipan pukal dalam MS SQL Server menggunakan pyodbc?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!