Поиск ссылок на объекты средствами SQL — Turbo с отбором и удалением объектов




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

В качестве донора взята публикация //infostart.ru/public/194718/. Спасибо авторам!

НО алгоритм поиска ссылок средствами SQL был полностью переделан и оптимизирован, так что скорость поиска для МНОГИХ объектов увеличилась в ДЕСЯТКИ раз (зависит от количества объектов поиска — чем больше массив ссылок для поиска, тем ощутимей прирост в скорости).

Обработка на обычных формах (не управляемых).

Так например, поиск ссылок на 30 документов Плат. поручение входящее в базе 45 ГБ УПП по старому алгоритму занимает 1 мин 10 сек, а по новому алгоритму в тех же условиях (та же база и жедезо) ~ 13 сек.

Для 300 контрагентов поиск ссылок по старому алгоритму составил 15 мин, а по новому ~ 3 минуты!

А для 3000 документов Плат. поручение входящее поиск по новому алгоритму занимает всего 8 мин  в тех же условиях!!! 

Кроме того в обработку добавлена возможность отбора искомых объектов с помощью построителя запроса (например, найти все ссылки на все помеченные на удаление документы отгрузок), а также возможность физического удаление объектов, на которых ссылок не обнаружено.

Надеюсь, обработка будет полезной не только мне 🙂 

Не забываем плюсовать, если понравилось…

9 Comments

  1. sobeyko2008

    Что вводить в настройки пользователя?

    Reply
  2. FIConsult

    (1) sobeyko2008, в смысле настройки пользователя? Нужно ввести логин и пароль пользователя СУБД MSSQL у которого есть доступ к базе + сетевое имя сервера MSSQL и имя базы в терминах MSSQL

    Reply
  3. AlexO

    (0)каким образом по SQL ищете объекты? Восстанавливаете всю ссылочную целостность? Или просто находите таблицу, к примеру, документов, и ищете только в ней?

    Что «Объект не найден» удаляете влет понятно — непонятно другое, там нужен объект, а не пустое место….

    Reply
  4. FIConsult

    да, восстанавливается вся ссылочная целостность, все связи … сравните результаты работы этой обработки и типовой «Поиск ссылок на объекты» — все увидите. Код открыт, механизм реализации можно увидеть

    Reply
  5. AlexO

    (4)

    да, восстанавливается вся ссылочная целостность

    Тогда не должна существенно быстрее работать «чем из 1С».

    поиск ссылок на 30 документов Плат. поручение входящее в базе 45 ГБ УПП

    Поиск 30 доков в «сыром размере SQL» 45 ГБ? 13 сек — это вполне и из 1С достижимо. Тем более, «чистые» запросы (из консоли) еще быстрее работают: 8 сек на 120ГБ.

    (4)

    Код открыт, механизм реализации можно увидеть

    Увы, если так по коду проверять на предмет «а как работает?!» каждую интересную обработку на ИС — не будешь не только не работать, но и не отдыхать ))

    Reply
  6. AlexO

    (0)вот это тоже не понятно:

    алгоритм поиска ссылок средствами SQL был полностью переделан и оптимизирован

    Кроме того в обработку добавлена возможность отбора искомых объектов с помощью построителя запроса

    Т.е. что в какой момент работает — отбор и поиск «средствами» 1С, а удаление — средствами SQL? Только не прикрывайтесь «код открыт» — механизмы обработки в описании не обозначены почти никак… ))

    Reply
  7. FIConsult
    алгоритм поиска ссылок средствами SQL был полностью переделан и оптимизирован

    — имелось ввиду по сравнению с обработкой донаром http://infostart.ru/public/194718/

    отбор и поиск «средствами» 1С, а удаление — средствами SQL?

    — реализован отбор и поиск объектов для поиска ссылок средствами 1С. Поиск ссылок на эти отобранные объекты — идет средствами SQL. Удаление — средствами 1С (тех объектов, на которых ссылок не найдено). Вы бы посмотрели сначала обработку в работе, и стало бы все понятно (по крайней мере это), если описания не достаточно.

    Тогда не должна существенно быстрее работать «чем из 1С».

    — сравните…при моем сравнении — во много раз быстрее(в пакетном режиме для многих объектов).

    Поиск 30 доков в «сыром размере SQL» 45 ГБ? 13 сек — это вполне и из 1С достижимо. Тем более, «чистые» запросы (из консоли) еще быстрее работают: 8 сек на 120ГБ.

    — я действительно рад, что у Вас так все быстро и хорошо. Я никого не принуждаю использовать данную обработку насильно, скачивать ее, плюсовать и т.п.. Я ее разрабатывал для себя, ибо мне это было нужно в свое время и помогло быстро почистить базу (например отобрать в базе все помеченные на удаление документы и физически удалить те, на которых нет ссылок). Стандартные средства 1С — не устраивали по скорости. Если кому — то еще, кроме меня, она будет полезна — буду только рад. Если нет — не сильно расстроюсь 🙂

    Reply
  8. unoDosTres

    (5) AlexO,

    ой не поверю вообще что у вас универсальный запрос по всем метаданным отработает быстрей чем за 8 сек для поиска списка документов количеством 30 единиц, я вот про это

    Поиск 30 доков в «сыром размере SQL» 45 ГБ? 13 сек — это вполне и из 1С достижимо. Тем более, «чистые» запросы (из консоли) еще быстрее работают: 8 сек на 120ГБ.

    а написать что там где-то как то быстрей отрабатывало и где то без фактов пустое вообще, субъективное у вас мнение слишком, заметил, что касательно всех статей с привлечением средств SQL у вас негатив один, даже если нет вмешательства в целостность базы, а простой запрос в СУБД через АДО или КОМ

    Reply
  9. user611777_dshaymardanov

    Спасибо за обработку, она меня выручила. Я как раз мучился с удалением объектов — у нас большая база, типовые обработки зависают.

    Reply

Leave a Comment

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