Немного доработанная версия выложенная в публикации //infostart.ru/public/76499/
Довольно часто регистр сведений Версии объектов не чистится продолжительное время, к то му же количество записей за 1 день может быть довольно высоко, немного модернизировал обработку.
Добавлено:
1. Возможность указывать количество записей которые удаляются в пределах 1-го дня(сделано для того, что бы при большом количестве записей не загружать сервер).
2. К пункту 1 — добавлено время задержки между обработкой порций данных (при установки достаточного количества времени, появляется возможность не загружать сервер, а так же не мешать работе пользователей)




НаборЗаписей = РегистрыСведений.ВерсииОбъектов.СоздатьНаборЗаписей();
НаборЗаписей.Записать();
3 000 000 записей удалились примерно за 10 часов РАБОЧЕГО времени.
При этом не было тормозов вообще в программе. Работает постоянно окала 160 пользователей
P.S. в конце каждого года удаляю этот регистр, в копии данные сохранены, актуальность истории 2 года, предыдущий год в архиве, текущий год в рабочей
К сожалению у меня такой метод не прокатил:).
(1) Re:аниматор, Вот тоже считаю что больше ничего не надо)
(1) Re:аниматор,
НаборЗаписей = РегистрыСведений.ВерсииОбъектов.СоздатьНаборЗаписей();
НаборЗаписей.Записать();
Это напрашивается само собой, но катит далеко не всегда. У нас с таким кодом через час вывалило «недостаточно памяти на сервере» и послало очень далеко. У себя удаляли через выборку с последующим обходом в цикле. Скоростью, естественно, не отличается, но на красоту решения не всегда есть время. Еще можно удалять из конфигурации весь регистр, обновлять, затем возвращать его на место. (Быстрее всего, но корректным способ не назовешь)
Конечно соглашусь, не так быстро как
НаборЗаписей = РегистрыСведений.ВерсииОбъектов.СоздатьНаборЗаписей();
НаборЗаписей.Записать();
За то надёжней и никаких ошибок, поставил и забыл, а когда вспомнил уже всё сделано. Всё таки думаю проще поставить нормальные настройки и заниматься другими делами, в то время как паровозик потихоньку едет и едет).
Да и разница как я понял не так велика 3кк записей за 10 часов, у меня 6кк отработало за 24 часа.
Автор подскажите как со скоростю работы обработки в больших информационых базах, есть ли возможность остановки работы обработки после нажатия кнопки выполнить. Зарание спасибо за ответ
(6) Я уже писал, что обработка была доработана специально для больших информационных баз.
Остановить — без проблем, закрываете обработку и всё.
На опыте использования могу сказать, что при установке размера куска для удаления 200-300 элементов и паузе в 20 секунд проблем с загруженностью сервера не должно возникать (хотя много зависит от загруженности сервера, именно для этого можно поставить паузу хоть 10 минут между удалениями).
Если нужно много удалить, поставьте на выходные дни и пусть работает.
То что в модифицировали работало совсем не оптимально:
зачем сначала изменять поле объект в записи, а затем писать пустой набор…
(8)Значит вы не поняли сути алгоритма, если появляются такие вопросы, да и собственно кто мешает написать свою обработку, лучше, быстрей, оптимальней, я бы скачал была бы такая :).
(9) Я написал, но она делает немного не то (