如何减少SSIS ETL过程的事务日志大小?

时间:2012-02-16 21:00:13

标签: sql-server ssis transaction-log

对于大约10 GB的SQL Server 2008数据库,事务日志的大小约为70 GB。这发生在使用SSIS 2008运行的ETL过程的登台数据库中。该过程大约需要8个小时才能完成,并且每周运行一次。

70 GB接近系统的物理极限,仅I-O就会受到性能损失。

我们永远不会使用日志来恢复登台数据库,因为ETL将在每次运行时重新开始,并在过程失败时恢复早期的数据库备份。此时,增量ETL过程很难实现,因为配置可以在运行之间更改,从而改变许多或所有计算。

数据库恢复模型设置为简单。可以允许SISS独占访问临时数据库。

我们想知道调整SISS会有什么期望。

一些注意事项:

  • SISS似乎在数据库中建立了多个连接。这怎么会干扰调整包的事务隔离级别和事务的“长度”,即在某些步骤完成后提交?
  • 在单用户模式下运行时,进程性能是否会提高? SISS可以应付吗?
  • 使用设置Transaction = Unsupported?
  • 配置要运行的包是否明智?

有关此问题的任何经验,想法或建议吗?

1 个答案:

答案 0 :(得分:0)

如果这个过程每周运行一次,我假设数据在进入系统时不需要处理。为了澄清(并纠正我,如果我错了),你有一些数据,你每周一次加载到数据库中。

如果日志很大,我会假设您没有进行批量插入。如果没有,那就去做吧!这应该加快进程减少日志大小。