2

对于大约 10 GB 的 SQL Server 2008 数据库,我们遇到事务日志增长到大约 70 GB 的问题。这发生在使用 SSIS 2008 运行的 ETL 过程的暂存数据库中。该过程大约需要 8 小时才能完成,并且每周运行一次。

70 GB 已接近系统的物理极限,单单 IO 就会有性能损失。

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

数据库恢复模式设置为简单。可以允许 SISS 独占访问暂存数据库。

我们想知道调整 SISS 可以期待什么。

一些考虑:

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

关于这个问题有什么经验、想法或建议吗?

4

1 回答 1

0

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

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

于 2012-02-16T21:53:13.580 回答