Объем удаляет (усеченный по сравнению с, удаляют),

MVCC может также быть реализован вручную путем добавления столбца номера версии к таблицам, и всегда выполнение вставляет вместо обновлений.

стоимость этого является намного большей базой данных, и медленнее выбирает, так как каждому нужен подзапрос для нахождения последней записи.

Это - отличное решение для систем, которые требуют аудита 100% для всех изменений.

9
задан Sam 11 August 2014 в 14:01
поделиться

6 ответов

truncate - это то, что вы ищете. Если после этого вам нужно уменьшить размер db, запустите усадку.

В этой ссылке MSDN (если вы говорите о T-SQL) сравнивается скрытый процесс удаления строк и усечения.

1
ответ дан 5 December 2019 в 02:08
поделиться

" Удалить все строки " ... не будет УДАЛЕНИЕ ТАБЛИЦЫ (и повторного воссоздания пустой таблицы с той же схемой / индексами) предпочтительнее? (Мне лично нравится "начинать с нуля" ;-))

Сказанное TRUNCATE TABLE тоже вполне нормально, и да, DBCC SHRINKFILE может потребоваться позже, если вы захотите восстановить пространство.

1
ответ дан 5 December 2019 в 02:08
поделиться

В зависимости от размера полной базы данных сжатие может занять некоторое время; Я обнаружил, что он работает быстрее, если его сокращать меньшими кусками, вместо того, чтобы пытаться вернуть все сразу.

0
ответ дан 5 December 2019 в 02:08
поделиться

Одна вещь, о которой следует помнить при работе с таблицей усечения (а также с таблицей удаления), - это продвижение вперед, это не будет работать, если у вас когда-либо были внешние ключи, ссылающиеся на таблицу.

0
ответ дан 5 December 2019 в 02:08
поделиться

Как уже указывалось, если вы не можете использовать усечение или удаление

SELECT 1
WHILE @@ROWCOUNT <> 0
    DELETE TOP (100000) MyTable
0
ответ дан 5 December 2019 в 02:08
поделиться

У вас есть нормальное решение (усечение + сжатие db) для удаления всех записей из таблицы.

Как указал Ирвин. Команда TRUNCATE не будет работать, если на нее ссылается ограничение внешнего ключа. Поэтому сначала отбросьте ограничения, обрежьте таблицу и воссоздайте ограничения.

Если вас беспокоит производительность и , это обычная процедура для вашей системы. Возможно, вы захотите изучить , переместив эту таблицу в собственный файл данных , а затем запустите shrink только для целевого файла данных!

0
ответ дан 5 December 2019 в 02:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: