gifts2017

Удаление одинаковых версий в регистре сведений версии объектов

Опубликовал Сергей Виткус (Lama12-1) в раздел Администрирование - Чистка базы

Чистим регистр сведений Версии объектов от дублей и битых ссылок.

Обработка предназначена для чистки регистра сведений "Версии объектов" от повторяющихся записей.
В каких случаях нужна данная обработка?
В базе включено версионирование объектов. Пользователи привыкли нажимать "Ок" выходя из документа или элемента справочника. Даже когда изменения не производилось.
При включенном версионировании и партионном учете производится восстановление последовательности.


Что делает обработка.
Если несколько раз записать элемент справочника и не внести в него изменения, то создастся две записи в регистре сведений "Версии объектов", но версии различаться не будут. Данная обработка оставит первую версию (из одинаковых). За счет такой чистки значительно сократится место занимаемое регистром.

Разница в алгоритмах.
Экспресс
В данном случае программа ищет записи с монотонно увеличивающимся номером версии начиная с 1. Данный алгоритм выборки позволяет сократить время обработки регистра, в случае если чистка хоть раз проводилась. Имеются свои недостатки. Например в случае если данным алгоритмом чистка уже проводилась, но по определенному объекту были созданы новые версии, то программа такой объект не обработает.

Последние
Программа выбирает записи по объектам версии которых создались после определенной даты. Удобно использовать данный алгоритм при периодических чистках.

Глубокий
При данном алгоритме программа анализирует все записи в регистре.

Установка галки - "Удалить записи с битыми ссылками" позволяет очищать регистр от записей в которых измерение объект содержит "битую" ссылку.

Скачать файлы

Наименование Файл Версия Размер
Очистка регистра сведений Версии объектов 88
.epf 10,33Kb
21.04.14
88
.epf 02.00 10,33Kb Скачать

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение

Комментарии

1. Igor Erohin (postal222) 22.08.13 18:10
Пожалуйста, когда нажимаете кнопку "Опубликовать", смотрите, что получается.
Експресс, Посление - ну смех же.
Какое доверие может быть к автору, который банально не смотрит что у него получилось?
Можно предположить, что и внутри сделано на, мягко говоря, невысоком уровне.
Спасибо.
2. Анатолий Бычин (tolyan_ekb) 23.08.13 07:16
Модераторы тоже пропустили "Експресс" и "Посление" ))
3. юрий гулидов (gull22) 28.08.13 08:51
Вопрос автору: чем один вариант отличается от другого? Если назначение варианта = "Последние", да еще с указанием даты можно понять интуитивно, то наименование "Экспресс" и "Глубокий", ставят в тупик.
4. Сергей Виткус (Lama12-1) 28.08.13 10:30
(3) gull22,
При глубоком варианте, обрабатывается весь регистр без каких либо отборов. Это очень долгий процесс.

Вариант "Экспресс", делает выборку только тех объектов у которых в регистре есть версии идущие подряд, т.е. есть версии с номерами 1,2,3,4,5,6,7,8,9. Если в регистре есть версии с номерами 1,2,5,6,8,10, то записи по такому объекту не попадут в чистку.

Основная проблема с данным регистром заключается в том что он спроектирован на быструю запись, но не на быстрые выборки данных (не хватает индексов).
Как следствие, сделать другие варианты отбора объектов в запросе представляется довольно таки сложно. Точнее сделать их можно, но они будут очень медленно работать. Запрос на выборку из регистра версий за определенный период (при количестве записей больше 100 000) фактически вешает SQL server (идет процессорная нагрузка). Измерение "Номер версии" специально не индексируется, но поскольку является измерением то группировки по нему отрабатывают относительно быстро. Поэтому и был добавлен вариант "Экспресс".

Вариант "Последние" можно использовать как заготовку для регламентного задания. Как ни странно, но сравнение на больше меньше, не так сильно загружает SQL server, как сравнение МЕЖДУ.
5. юрий гулидов (gull22) 28.08.13 10:39
Спасибо за полный и содержательный ответ
6. юрий гулидов (gull22) 23.04.14 10:36
Скажите пожалуйста с чем связано обновление обработки? Скачал в прошлом году , пользуюсь.
7. Сергей Виткус (Lama12-1) 23.04.14 19:26
(6) gull22, Добавлено удаление записей с битыми ссылками в измерении Объект. Правда оно медленно работает, но тут вроде ускорить не получается. Если есть предложения учту.
8. Сергей Виткус (Lama12-1) 19.05.14 11:43
Рекомендация по использованию опции "Удалять записи с "битыми" ссылками".
Если планируете запускать обработку в рабочее время при интенсивно работающих пользователях, рекомендую в запросе выборки "плохих" записей уменьшить количество выбираемых записей с 500 до 10. Если выполнять чистку во вне рабочее время, запрос можно не менять.

Причина.
Не могу утверждать точно, но похоже, что если SQL server не успевает выполнить запрос в определенное время и в таблице появляются новые записи, то запрос выполняется снова.
Количество записей в регистре "Версии объекта" обычно велико, а используемый запрос для выборки "битых" ссылок, ресурсоемкий. На нескольких миллионах записей, для выборки 500 записей с "битыми" ссылками уходит продолжительное время и иногда это мешает работе пользователей. Экспериментально у себя подобрал приемлемую величину в 10 записей. Но обращаю внимание, что эта величина зависит от интенсивности нагрузки на базу, и объема записей в регистре.
9. pavel ev (pavelyar) 30.12.14 10:09
10. Сергей Виткус (Lama12-1) 09.01.15 11:19
(9) pavelyar, только с изменением формы на управляемую и переносом функциональной части на сервер.
Но это не сложно.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа