【发布时间】:2012-02-01 20:41:34
【问题描述】:
我在一个 SQL Server 2008 R2 实例中有这个表,我有一个每晚针对它运行的计划进程。该表在任何时候都可以有多达 500K 的记录。处理完这张表后,我需要从中删除所有行,所以我想知道以下哪种方法会产生最少的开销(即过多的事务日志条目):
- 截断表
- 删除并重新创建表
由于时间和它产生的额外事务日志条目,删除表的内容已经结束。
共识似乎是截断,谢谢大家!
【问题讨论】:
-
Some comparisons between amount of logging here。
TRUNCATE的日志记录比DROP略少,因为删除还会导致该对象的关联行从系统表中删除(也已记录)
标签: sql-server tsql truncate