Sql server 使用TABLOCK插入批量阻止事务日志增长

Sql server 使用TABLOCK插入批量阻止事务日志增长,sql-server,apache-spark,jdbc,bulkinsert,sqlbulkcopy,Sql Server,Apache Spark,Jdbc,Bulkinsert,Sqlbulkcopy,我正在编写一个进程,该进程将从Spark-Scala应用程序写入SQL Server。它为每个数据分区生成多个插入块(如预期的那样),batchsize 100K记录 当我监视事务日志时,我可以看到它已满,我希望使用INSERT BULK它不会满 请您提出建议,如何实现每批提交。当您的数据库恢复模式设置为“完全”时,大容量插入将写入事务日志,事务日志将继续增长。 您有两个选择: 在加载数据时将数据库恢复模式更改为bulked logged,然后将其重置为full 在加载每个批(或每隔几个批)后,

我正在编写一个进程,该进程将从Spark-Scala应用程序写入SQL Server。它为每个数据分区生成多个插入块(如预期的那样),batchsize 100K记录

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


请您提出建议,如何实现每批提交。

当您的数据库恢复模式设置为“完全”时,大容量插入将写入事务日志,事务日志将继续增长。 您有两个选择:

  • 在加载数据时将数据库恢复模式更改为bulked logged,然后将其重置为full

  • 在加载每个批(或每隔几个批)后,修改流程以备份事务日志


  • 请给出代码示例。。。请参阅,我使用了@camba1建议的数据库恢复模式进行大容量日志记录,还使用了EXEC sp_tableoption tableName,“大容量加载时的表锁”,1