批量插入大行以防止由于ACTIVE_TRANSACTION而导致日志已满

时间:2017-12-12 22:40:59

标签: sql sql-server logging sql-server-2014 batch-processing

我有一张包含300多万行的表格。当我们尝试将它们插入另一个表时,我得到了众所周知的“log is full due to ACTIVE_TRANSACTION”错误。在线研究似乎只有三种解决方案:

  1. 更改日志记录类型
  2. 增加日志空间
  3. 分批插入
  4. 我和许多其他人一样,不能做#1或#2,因为我没有DB的权利。离开#3。

    由于我们的数据库中有许多表会遇到这种情况,我正在编写一个存储过程,它将获取源和目标表名称以及批量大小,并且它将批量执行插入操作。

    但后来我认为这似乎是一个非常普遍的问题,所以也许我应该使用一些现有的/内置的/标准的解决方案呢?

    SQL Server 2014是否有内置机制来处理这种情况?或者,我是否比现在更复杂,并且有一种更简单的方法?

0 个答案:

没有答案