You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将含30万+INSERT语句的文件批量执行到Azure SQL数据库?

批量插入30万条数据到Azure SQL数据库的优化方案

当然可以直接执行包含30万条INSERT的脚本到Azure SQL,但直接全量执行原始脚本大概率会遇到超时、事务日志暴涨、执行效率极低的问题,更推荐用以下几种高效方案替代手动分批:

方案一:优化SSMS脚本执行

  1. 调整SSMS执行参数:
    • 打开「工具→选项→查询执行→SQL Server→高级」,将「查询超时时间」设为0(无限制),同时调大「连接超时时间」;
    • 打开脚本后,在开头加BEGIN TRANSACTION;,每1万条INSERT后插入COMMIT TRANSACTION; BEGIN TRANSACTION;,结尾补COMMIT;,拆分事务避免日志溢出。
  2. 直接执行脚本:点击SSMS的「执行」按钮,无需手动分批复制。

方案二:使用批量导入工具(推荐)

1. bcp命令行工具

把INSERT语句转换为CSV/TSV格式的数据文件后,用bcp批量导入,速度比单条INSERT快数倍:

bcp YourDatabase.dbo.YourTable in "C:\data\your_data.csv" -S yourserver.database.windows.net -U username -P password -d YourDatabase -c -t, -r\n

参数说明:

  • -c:使用字符格式导入
  • -t,:指定列分隔符为逗号
  • -r\n:指定行分隔符为换行

2. Azure Data Studio导入向导

连接到Azure SQL数据库后:

  • 右键目标表 → 「导入数据」
  • 选择转换好的CSV/TSV文件,按向导配置列映射、导入选项,工具会自动完成批量导入,无需编写复杂脚本。

方案三:临时调整数据库配置加速导入

  • 临时升级Azure SQL的计算资源(DTU/VCore),导入完成后再降级,减少执行时间;
  • 导入前禁用目标表的非聚集索引、外键约束,导入完成后重新启用并重建索引,大幅提升插入效率。

内容的提问来源于stack exchange,提问作者Frederic Le Guen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 00:43:14