ホームページ  >  記事  >  バックエンド開発  >  pyodbc を使用して MS SQL Server への一括挿入を高速化するにはどうすればよいですか?

pyodbc を使用して MS SQL Server への一括挿入を高速化するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-02 20:15:03318ブラウズ

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

pyodbc を使用して MS SQL Server で一括挿入のパフォーマンスを向上させる方法

1,300,000 行を超える行を挿入しようとすると挿入速度が遅くなるという話がありました。 pyodbc を使用する MS SQL Server データベース。挿入のために個々の行を反復処理することはパフォーマンスの問題の原因となる可能性がありますが、一括挿入手法を検討することは実行可能な解決策です。

T-SQL BULK INSERT

T-SQL の BULK INSERT コマンドを使用すると、データ ファイルが SQL Server インスタンスと同じマシン上、またはアクセス可能な SMB/CIFS ネットワークの場所にある場合、効率的な一括データの読み込みが可能になります。この条件が満たされる場合は、次の手順を実行できます。

  1. 一括挿入ステートメントを作成し、宛先テーブルとデータ列を指定します。
  2. ロードするには pyodbc.load_bulk() を使用します。ファイルまたはカーソルからデータベースへのデータ。

pyodbc の fast_executemany

データ ファイルがリモート クライアント上に存在するシナリオの場合、pyodbc の Cursor#バージョン 4.0.19 で導入された fast_executemany 機能により、挿入パフォーマンスが大幅に向上します。

  1. カーソル オブジェクトで fast_executemany を True に設定して有効にします。
  2. 複数のデータを挿入するには Cursor#executemany() を使用します。一度に列を並べます。この手法を使用すると、現在使用している手動反復と比較して実行時間を大幅に短縮できます。

考慮事項

  • fast_executemany はデフォルトでは有効になっていません。
  • 一括挿入のデータは、ターゲット テーブルのスキーマに従って構造化されている必要があります。
  • SQL Server ユーザーが一括挿入を実行するために必要な権限を持っていることを確認してください。

以上がpyodbc を使用して MS SQL Server への一括挿入を高速化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。