我几乎没有问过面试的问题:
答案 0 :(得分:4)
DELETE
记录每次删除,而TRUNCATE
是批量记录操作,因此更快。SELECT DISTINCT
数据进入临时表,TRUNCATE
然后重新插入。答案 1 :(得分:1)
这里有一些解决问题的方法:
由于TRUNCATE实际上并没有删除数据,但是通过删除指向索引来释放数据它会比DELETE快得多,当你使用DELETE时,所有内容都会逐行存储在事务日志中,因此它是慢得多。
http://www.codeproject.com/Tips/159881/How-to-remove-duplicate-rows-in-SQL-Server-2008-wh
http://blog.sqlauthority.com/2009/06/23/sql-server-2005-2008-delete-duplicate-rows/