与SQL Server 2008 R2的事务日志完全问题

我正在运行SQL Server 2008 R2的“事务日志已满”问题。

我的数据库包含80,000个表,最多包含5列BIGINT,并且每列都有一个索引。

数据库的恢复模式设置为简单。

与数据库的工作模式是通过大量的大容量插入,更新和删除命令大约50个小时,而给定的时间只有8个命令在同一时间执行。

事务日志文件被设置为自动增长10%,并限制为2,000 GB(由于磁盘大小仅为500 GB,所以这是错误定义的)。

数据库执行上述命令时发生“事务日志已满”exception,文件大小为41 GB,日志文件为270 GB,使用全部磁盘空间。

为了防止问题再次发生,我们将最大日志文件的大小设置为20 GB,并删除上述命令中的所有事务(因为不需要使用事务)。

但不幸的是,当日志文件达到20GB的限制时,我们又经历了这个exception。

是否有可能SQL服务器不会截断日志文件,因为服务器始终在执行命令,因此事务日志没有被使用,所以没有一刻?

什么可能是这种行为的原因?

事务日志增长可能是因为您在单个事务中执行了这些操作,而不是将它们分解为更小的事务。 例如,如果删除1个MLlogging,则该操作将首先插入到事务日志中,然后提交到数据库。 但是,如果您将删除分为较小的事务处理,请说每个10.000条logging,事务日志将会变小,您将可以使用可用的磁盘空间。

在开始这个数据运行之前,您是否有可能正在运行单个事务? 事务日志按顺序写入,只有当该部分中的所有事务完成时才能重新使用文件的各个部分。 一个长时间运行的事务(即使它没有做任何事情)可能会阻止日志被重用。