请帮我找一些SQL问题的答案

时间:2012-06-09 17:23:51

标签: sql-server

我几乎没有问过面试的问题:

  1. delete和truncate之间的性能差异?
  2. 从没有任何id列的表中删除重复数据,不应使用CTE。
  3. 为什么我们能够使用CTE删除数据?

2 个答案:

答案 0 :(得分:4)

  1. DELETE记录每次删除,而TRUNCATE是批量记录操作,因此更快。
  2. 您可以SELECT DISTINCT数据进入临时表,TRUNCATE然后重新插入。
  3. 不是一个好兄弟......

答案 1 :(得分:1)

这里有一些解决问题的方法:

  1. 由于TRUNCATE实际上并没有删除数据,但是通过删除指向索引来释放数据它会比DELETE快得多,当你使用DELETE时,所有内容都会逐行存储在事务日志中,因此它是慢得多。

  2. http://www.codeproject.com/Tips/159881/How-to-remove-duplicate-rows-in-SQL-Server-2008-wh

  3. http://blog.sqlauthority.com/2009/06/23/sql-server-2005-2008-delete-duplicate-rows/