Многопоточное удаление помеченных объектов с контролем ссылок через SQL


Работает быстрее, чем обычное удаление помеченных объектов.

После обрезания базы возникла необходимость удалить большое количество объектов, помеченных на удаление, типовое удаление в такой ситуации работает очень долго, поэтому появилось желание сделать свою процедуру многопоточного удаления.

Алгоритм поиска ссылок средствами SQL был взят из публикации "Поиск ссылок на объект средствами SQL".

Плюсы: работает быстрее типовой процедуры, минусы: не анализирует регистр бухгалтерии и регистры расчета.

Протестировано на БП 3.0 КОРП(3.0.52.39) и MS SQL Server 2008.

8 Comments

  1. Fox-trot

    так а что помешало сделать «анализатор» регистра бухгалтерии и прочего?

    Reply
  2. m0zg153

    (1) поленился 🙂

    Reply
  3. yurowski

    минусы: не анализирует регистр бухгалтерии и регистры расчета и что из этого вытекает?

    Не удалит данные или удалит бездумно?

    Reply
  4. m0zg153

    (3) удалит, если нет других ссылок кроме как в регистре бухгалтерии

    Reply
  5. AlexeyX

    Не работает.

    Не удаляет, даже если ссылок нет.

    Ничего не пишет.

    Заполнить таблицу работает.

    По кнопке «Удалить» ничего не происходит.

    Reply
  6. AlexeyX

    УТ 11.4.5.32

    Reply
  7. AlexeyX

    Убрал фоновый вызов — заработало.

    Работает не быстрее штатного.

    Львиная доля тратиться на перебор структуры базы данных.

    Плюс штатная удаляет объекты со ссылками (если ссылка в помеченном объекте или РС по объекту)

    Reply
  8. AlexeyX

    «Работает не быстрее штатного. » — уточню, точные замеры не делал, но при 1 пользователе в базе количество секунд удаления примерно одинаковое.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *