2012-06-09 38 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