Усеченный стол был бы лучшим на сегодняшний день.
Если вы беспокоитесь об отношениях из-за ссылочной целостности, то я предлагаю вам отдельно обновить те таблицы, которые ссылаются на него по внешнему ключу (например, если внешние ключи имеют ON DELETE SET NULL
, тогда UPDATE RefTbl SET Key = NULL WHERE Key IS NOT NULL
, аналогично, удалитеесли каскад и т.д. ...).
В качестве альтернативы, если вы не хотите этого, вы можете изменить свой запрос, чтобы он был немного быстрее, используя ROWCOUNT:
--other code for loop
SET ROWCOUNT 1000000 --this limits the number of rows that will be processed
DELETE FROM Table1
Также яя не уверен, почему вы делаете это внутри транзакции?Это создаст огромный журнал транзакций и сильно повлияет на вашу производительность ... Когда вы выполняете такие вещи, как дамп содержимого таблицы, транзакции обычно не актуальны (это может быть актуально в вашем случае, но я просто говорю, что это редко так),Если вам нужна транзакция, то хотя бы уберите отсрочку ...