pyodbc を使用した MS SQL Server での一括挿入操作の最適化
Python コードから大量のデータを MS SQL Server に効率的に挿入するという課題pyodbc の使用には慎重な検討が必要です。個々の挿入を繰り返し実行するのは簡単そうに見えますが、特に 1,300,000 行を超えるデータセットを扱う場合には、重大なパフォーマンスのボトルネックが発生する可能性があります。
考えられる解決策の 1 つは、T-SQL BULK INSERT コマンドを利用することです。データの取り込みを高速化します。ただし、この方法では、データ ファイルが SQL Server インスタンスと同じマシン上、またはサーバーにアクセス可能なネットワーク上の場所に配置されている必要があります。この条件が満たされない場合は、代替オプションを検討する必要があります。
pyodbc の Fast ExecuteMany 機能の探索
Pyodbc バージョン 4.0.19 では、強力なパフォーマンス最適化手法 Cursor# が導入されています。 fast_executemany。この機能を有効にすると、データベース接続はサーバーへの 1 回のラウンドトリップ内で複数のバッチパラメータ実行を実行できます。
fast_executemany を利用するには、次の行をコードに追加するだけです:
<code class="python">crsr.fast_executemany = True</code>
この設定により、挿入速度が大幅に向上します。ベンチマーク テストでは、fast_executemany を有効にすると 1 秒強で 1,000 行がデータベースに挿入されましたが、この最適化なしでは 22 秒かかりました。
ループ実行の最適化
fast_executemany の使用に加えて、ループ実行のパフォーマンスを微調整する追加の戦略があります。
これらの最適化を実装すると、pyodbc を使用して MS SQL Server に大量のデータを挿入するプロセスを大幅に高速化できます。
以上がpyodbc を使用して MS SQL Server で一括挿入操作を最適化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。