首页 > 解决方案 > 使用带有 TABLOCK 的 INSERT BULK 防止事务日志增长

问题描述

我正在编写一个从 Spark-Scala 应用程序写入 SQL Server 的进程。它为每个数据分区生成多个 INSERT BULK(如预期的那样),批量大小为 100K 记录。

当我正在监视事务日志时,我可以看到它已满,我希望 INSERT BULK 不会。

您能否建议我如何实现每批次的提交。

标签: sql-serverapache-sparkjdbcbulkinsertsqlbulkcopy

解决方案


当您的数据库恢复模式设置为完整时,批量插入将写入事务日志,并且事务日志将继续增长。你有两个选择:

  1. 在加载数据时将数据库恢复模式更改为批量记录,然后将其重置为完整

  2. 在每个批次加载(或每隔几个批次)后修改您的流程以备份事务日志


推荐阅读