2012-06-09 3 views
-1

У меня есть несколько вопросов, которые меня попросили в интервью:Пожалуйста, помогите мне найти ответ на некоторые вопросы SQL

  1. разница в производительности между удалением и усечением?
  2. Удалить дубликаты данных из таблицы, которая не имеет столбца идентификатора, и не должна использовать 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

2-я ссылка, которую вы дали выполняет операцию удаления с помощью CTE .Op хочет, чтобы удалить данные без использования КТР – praveen

Смежные вопросы