В качестве донора взята публикация //infostart.ru/public/194718/. Спасибо авторам!
НО алгоритм поиска ссылок средствами SQL был полностью переделан и оптимизирован, так что скорость поиска для МНОГИХ объектов увеличилась в ДЕСЯТКИ раз (зависит от количества объектов поиска — чем больше массив ссылок для поиска, тем ощутимей прирост в скорости).
Обработка на обычных формах (не управляемых).
Так например, поиск ссылок на 30 документов Плат. поручение входящее в базе 45 ГБ УПП по старому алгоритму занимает 1 мин 10 сек, а по новому алгоритму в тех же условиях (та же база и жедезо) ~ 13 сек.
Для 300 контрагентов поиск ссылок по старому алгоритму составил 15 мин, а по новому ~ 3 минуты!
А для 3000 документов Плат. поручение входящее поиск по новому алгоритму занимает всего 8 мин в тех же условиях!!!
Кроме того в обработку добавлена возможность отбора искомых объектов с помощью построителя запроса (например, найти все ссылки на все помеченные на удаление документы отгрузок), а также возможность физического удаление объектов, на которых ссылок не обнаружено.
Надеюсь, обработка будет полезной не только мне 🙂
Не забываем плюсовать, если понравилось…
Что вводить в настройки пользователя?
(1) sobeyko2008, в смысле настройки пользователя? Нужно ввести логин и пароль пользователя СУБД MSSQL у которого есть доступ к базе + сетевое имя сервера MSSQL и имя базы в терминах MSSQL
(0)каким образом по SQL ищете объекты? Восстанавливаете всю ссылочную целостность? Или просто находите таблицу, к примеру, документов, и ищете только в ней?
Что «Объект не найден» удаляете влет понятно — непонятно другое, там нужен объект, а не пустое место….
да, восстанавливается вся ссылочная целостность, все связи … сравните результаты работы этой обработки и типовой «Поиск ссылок на объекты» — все увидите. Код открыт, механизм реализации можно увидеть
(4)
Тогда не должна существенно быстрее работать «чем из 1С».
Поиск 30 доков в «сыром размере SQL» 45 ГБ? 13 сек — это вполне и из 1С достижимо. Тем более, «чистые» запросы (из консоли) еще быстрее работают: 8 сек на 120ГБ.
(4)
Увы, если так по коду проверять на предмет «а как работает?!» каждую интересную обработку на ИС — не будешь не только не работать, но и не отдыхать ))
(0)вот это тоже не понятно:
Т.е. что в какой момент работает — отбор и поиск «средствами» 1С, а удаление — средствами SQL? Только не прикрывайтесь «код открыт» — механизмы обработки в описании не обозначены почти никак… ))
— имелось ввиду по сравнению с обработкой донаромhttp://infostart.ru/public/194718/
— реализован отбор и поиск объектов для поиска ссылок средствами 1С. Поиск ссылок на эти отобранные объекты — идет средствами SQL. Удаление — средствами 1С (тех объектов, на которых ссылок не найдено). Вы бы посмотрели сначала обработку в работе, и стало бы все понятно (по крайней мере это), если описания не достаточно.
— сравните…при моем сравнении — во много раз быстрее(в пакетном режиме для многих объектов).
— я действительно рад, что у Вас так все быстро и хорошо. Я никого не принуждаю использовать данную обработку насильно, скачивать ее, плюсовать и т.п.. Я ее разрабатывал для себя, ибо мне это было нужно в свое время и помогло быстро почистить базу (например отобрать в базе все помеченные на удаление документы и физически удалить те, на которых нет ссылок). Стандартные средства 1С — не устраивали по скорости. Если кому — то еще, кроме меня, она будет полезна — буду только рад. Если нет — не сильно расстроюсь 🙂
(5) AlexO,
ой не поверю вообще что у вас универсальный запрос по всем метаданным отработает быстрей чем за 8 сек для поиска списка документов количеством 30 единиц, я вот про это
а написать что там где-то как то быстрей отрабатывало и где то без фактов пустое вообще, субъективное у вас мнение слишком, заметил, что касательно всех статей с привлечением средств SQL у вас негатив один, даже если нет вмешательства в целостность базы, а простой запрос в СУБД через АДО или КОМ
Спасибо за обработку, она меня выручила. Я как раз мучился с удалением объектов — у нас большая база, типовые обработки зависают.