nastasya1011
@nastasya1011
тестировщик, криптография

Хранимая процедура. Как быстро удалить большое число записей по критерию, если delete затупливает?

Есть хранимая процедура, которая вычищает раз в неделю старые данные из таблиц. Delete очень сильно снижает быстродействие (несколько сотен тысяч записей требуется удалить), truncate тоже нельзя использовать. Вопрос- есть ли какие хитрости на этот счёт, типа bulk например (мне кажется подошло бы)? Может брать по тысяче записей в delete и зациклить? У заказчика еще Win Server 2003 старенькие, что еще более ухудшает процесс. Очень надеюсь на вашу помощь)
  • Вопрос задан
  • 768 просмотров
Пригласить эксперта
Ответы на вопрос 3
@dmitryKovalskiy
программист средней руки
Ну долгий запрос зацикливанием вы сделаете еще дольше. Может стоить удалять почаще? раз в день например, ночью.
Ответ написан
@pauloa
SQL Server developer, Data Scientist
Сколько всего записей у вас в таблице?
Проиндексированы ли поля, по которым выбираются записи на удаление.
Если вы удаляете большую часть данных - возможно имеет смысл перенести только нужные данные в отдельную таблицу, удалить старую таблицу, переименовать новую таблицу в старую, построить необходимые индексы.
Ответ написан
Комментировать
nastasya1011
@nastasya1011 Автор вопроса
тестировщик, криптография
Всем спасибо большое. вопрос решился переиндексацией и зацикливанием.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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