Цитата:
Сообщение от
Blog bot
Describes a custom framework for performing a periodic database cleanup
т.е. для periodic cleanup лучше удалять понемножку из самой аксапты со всеми delete action, validate и прочими бизнес-проверками (для надежности). скорость удаления ограничена не скокростью языка, а объемами дисков и памяти на SQL.
но есть случай, когда процедуру действительно приходится писать на T-SQL.
это ВНЕЗАПНЫЙ cleanup.
это когда "не было никогда и вот опять" база выросла и ВНЕЗАПНО заполнила ВСЁ.
в этом случае, нужно сохранить 1-5% от всех записей в логах, а остальное грохнуть как можно скорее.
в этом случае стоит попросить технологическое окно в несколько часов,
сделать stop world,
перевести базу в монопольный режим и (возможно) в Simple model.
Далее SQL-скриптами:
* перенести нужный 1-5% записей в stage таблицы,
* сделать truncate table (не задействует transaction log)
* перенести нужные записи из stage обратно в рабочие.
затем вернуть базу из монополного режима в нормальный.