2012-06-09 34 views
-1
答案

我有我一直在问在采访几个问题:删除和截断之间请帮我找一些SQL问题

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

回答

4
  1. DELETE日志的每个单独的缺失,而TRUNCATE是体记录的操作,因此比较快。
  2. 您可以将SELECT DISTINCT数据转换为临时表,TRUNCATE第一次然后重新插入。
  3. 不是史...
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/

+0

你所赐给第二连杆进行使用CTE .OP希望不使用CTE删除数据删除操作 – praveen