首页  >  文章  >  后端开发  >  如何使用 pyodbc 加速向 MS SQL Server 的批量插入?

如何使用 pyodbc 加速向 MS SQL Server 的批量插入?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-02 20:15:03252浏览

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. 通过在游标对象上将其设置为 True 来启用 fast_executemany。
  2. 使用 Cursor#executemany() 插入多个立即行。与您当前使用的手动迭代相比,此技术可以大大减少执行时间。

注意事项

  • 默认情况下不启用 fast_executemany。
  • 批量插入的数据应根据目标表架构进行结构化。
  • 确保 SQL Server 用户具有执行批量插入所需的权限。

以上是如何使用 pyodbc 加速向 MS SQL Server 的批量插入?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn