У нас огромная производственная база данных, ее размер составляет около 300 ГБ. Есть ли какой-либо подход к улучшению производительности запроса на удаление? Сейчас скорость удаления составляет от 1 до 10 тысяч в минуту, это очень медленно для нас.
sql-server
query-performance
Сообщество
источник
источник
Ответы:
Если вы пытаетесь удалить большое количество строк в одном операторе, вероятно, вы ожидаете активности журнала. Так что вы можете:
TRUNCATE
илиDROP
/CREATE
.SELECT INTO
чтобы поместить данные, которые вы хотите сохранить, в другую таблицу, аTRUNCATE
затем переместите небольшую часть назад. (Или просто удалите старую таблицу, переименуйте новую и повторно примените ограничения / разрешения и т. Д.)CHECKPOINT
очистить журнал вместо того, чтобы делать резервные копии журналов, но вы должны быть уверены, что вернули его обратно и создали новую полную резервную копию, чтобы заново инициировать цепочку журналов. ,источник
Есть подсказка, но какую версию вы используете? Это корпоративная версия? Так или иначе:
Добавьте детали, когда вы работаете с большой базой данных, нет единого правильного ответа.
источник
Вы должны попытаться удалить их по частям, возможно, удаляя в цикле, каждая итерация удаления - это собственная транзакция, а затем очищая журнал в конце каждой итерации цикла.
Кроме того, вам нужно будет найти номер, который вы собираетесь использовать в качестве значения в чанке для удаления записей. Это требует тщательного тестирования, было бы лучше, если бы вы сначала могли проверить значение чанка в UAT.
О том, как продолжить, отсылает вас к разделению больших операций удаления на куски.
источник
удаление может быть медленным, если большая таблица имеет рекурсивный внешний ключ.
если это так, найдите подходящее время, отключите зависимые службы, отключите рекурсивный внешний ключ, выполните массовое удаление, а затем снова восстановите внешний ключ.
источник
Добавляя еще несколько пунктов ...
tablock
вариант.Чтобы получить дополнительную помощь, опубликуйте запрос, который вы используете, информацию о таблице и любую информацию о блокировке.
источник