对于大约 10 GB 的 SQL Server 2008 数据库,我们遇到事务日志增长到大约 70 GB 的问题。这发生在使用 SSIS 2008 运行的 ETL 过程的暂存数据库中。该过程大约需要 8 小时才能完成,并且每周运行一次。
70 GB 已接近系统的物理极限,单单 IO 就会有性能损失。
我们永远不会使用日志来恢复临时数据库,因为 ETL 将在每次运行时重新开始,并在进程失败时恢复早期的数据库备份。此时,增量 ETL 过程将难以实施,因为配置可以在运行之间更改,从而更改许多或所有计算。
数据库恢复模式设置为简单。可以允许 SISS 独占访问暂存数据库。
我们想知道调整 SISS 可以期待什么。
一些考虑:
- SISS 似乎与数据库建立了多个连接。这怎么会干扰调整包的事务隔离级别和事务的“长度”,即在某些步骤完成后提交?
- 在单用户模式下运行时进程性能会提高吗?SISS能应付吗?
- 将包配置为通过设置 Transaction = Unsupported 运行是否明智?
关于这个问题有什么经验、想法或建议吗?