Bagaimanakah Saya Boleh Mempercepatkan Sisipan Pukal ke dalam Pelayan MS SQL Menggunakan pyodbc?

Mary-Kate Olsen
Lepaskan: 2024-11-02 20:15:03
asal
317 orang telah melayarinya

How Can I Speed Up Bulk Inserts into MS SQL Server Using pyodbc?

Cara Meningkatkan Prestasi Sisipan Pukal dalam MS SQL Server Menggunakan pyodbc

Anda menyebut menghadapi kelajuan sisipan perlahan apabila cuba memasukkan lebih 1,300,000 baris ke dalam pangkalan data MS SQL Server menggunakan pyodbc. Walaupun melelaran pada baris individu untuk sisipan mungkin menyumbang kepada isu prestasi, mempertimbangkan teknik sisipan pukal ialah penyelesaian yang berdaya maju.

T-SQL BULK INSERT

T-SQL's BULK Perintah INSERT membolehkan pemuatan data pukal yang cekap, dengan syarat fail data terletak pada mesin yang sama dengan contoh SQL Server atau dalam lokasi rangkaian SMB/CIFS yang boleh diakses. Jika syarat ini dipenuhi, langkah berikut boleh diambil:

  1. Buat penyata sisipan pukal dan nyatakan jadual destinasi dan lajur data.
  2. Gunakan pyodbc.load_bulk() untuk memuatkan data daripada fail atau kursor ke dalam pangkalan data.

fast_executemany in pyodbc

Untuk senario di mana fail data berada pada klien jauh, Kursor pyodbc# ciri fast_executemany yang diperkenalkan dalam versi 4.0.19 boleh meningkatkan prestasi sisipan dengan ketara:

  1. Dayakan fast_executemany dengan menetapkannya kepada True pada objek kursor.
  2. Gunakan Cursor#executemany() untuk memasukkan berbilang baris sekaligus. Teknik ini boleh mengurangkan masa pelaksanaan secara drastik berbanding dengan lelaran manual yang sedang anda gunakan.

Pertimbangan

  • fast_executemany tidak didayakan secara lalai.
  • Data untuk sisipan pukal hendaklah distrukturkan mengikut skema jadual sasaran.
  • Pastikan bahawa pengguna SQL Server mempunyai kebenaran yang diperlukan untuk melakukan sisipan pukal.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mempercepatkan Sisipan Pukal ke dalam Pelayan MS SQL Menggunakan pyodbc?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan