Многопоточное удаление помеченных объектов с контролем ссылок через 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 не будет опубликован. Обязательные поля помечены *