在Sql Server中的巨大事务,有什么问题吗?

Ste*_*ger 5 sql-server transactions bulk

我有一个程序在SQL Server 2005或2008数据库上执行许多批量操作(删除和创建索引,创建列,全表更新等),所有这些都在一个事务中完成.

有什么问题可以预料吗?

  • 我知道即使在简单恢复模式下,事务日志也会扩展.
  • 在程序正常运行期间不执行此程序,因此锁定和并发不是问题.

还有其他原因可以将交易分成更小的步骤吗?

Joh*_*som 5

简而言之,

  • 使用较小的事务可提供更可靠的故障恢复。
  • 长事务也可能不必要地长时间锁定对象,其他进程可能需要访问,即阻塞。

考虑一下,如果在事务开始和完成之间的任何时间点,您的服务器遇到故障,为了使数据库联机 SQL Server 将必须执行崩溃恢复过程,这将涉及从日志中回滚所有未提交的事务.

假设您开发了一个数据处理解决方案,该解决方案足够智能,可以从中断的地方继续。通过使用单个事务,这将不是您可用的选项,因为您需要再次从乞讨开始该过程。