我有一个程序,可以在一个事务中对 SQL Server 2005 或 2008 数据库执行许多批量操作(删除和创建索引、创建列、全表更新等)。
是否会出现任何问题?
- 我知道即使在简单恢复模式下事务日志也会扩展。
- 该程序在系统正常运行期间不会执行,因此锁定和并发不是问题。
是否还有其他原因将事务拆分为更小的步骤?
简而言之,
- 使用较小的事务可以提供更稳健的故障恢复。
- 长事务还可能不必要地长时间持有其他进程可能需要访问的对象的锁,即阻塞。
考虑一下,如果在事务开始和完成之间的任何时间点,您的服务器遇到故障,为了使数据库联机,SQL Server 必须执行崩溃恢复过程,这将涉及从日志中回滚所有未提交的事务。
假设您开发了一种数据处理解决方案,该解决方案足够智能,可以从中断的地方继续。通过使用单个交易,这对您来说不是一个可用的选项,因为您需要再次从乞讨开始该过程。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)