gifts2017

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

Опубликовал Станислав Семенец (FIConsult) в раздел Администрирование - Сервисные утилиты

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

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

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

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

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

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

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

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

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

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

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

Наименование Файл Версия Размер
Поиск ссылок на объекты средствами SQL - Turbo 65
.epf 34,97Kb
25.03.14
65
.epf 2 34,97Kb Скачать

См. также

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

Комментарии

1. Антон Собейко (sobeyko2008) 26.03.14 20:50
Что вводить в настройки пользователя?
2. Станислав Семенец (FIConsult) 26.03.14 21:13
(1) sobeyko2008, в смысле настройки пользователя? Нужно ввести логин и пароль пользователя СУБД MSSQL у которого есть доступ к базе + сетевое имя сервера MSSQL и имя базы в терминах MSSQL
3. Алекс Ю (AlexO) 28.07.14 09:56
(0)каким образом по SQL ищете объекты? Восстанавливаете всю ссылочную целостность? Или просто находите таблицу, к примеру, документов, и ищете только в ней?
Что "Объект не найден" удаляете влет понятно - непонятно другое, там нужен объект, а не пустое место....
4. Станислав Семенец (FIConsult) 28.07.14 10:12
да, восстанавливается вся ссылочная целостность, все связи ... сравните результаты работы этой обработки и типовой "Поиск ссылок на объекты" - все увидите. Код открыт, механизм реализации можно увидеть
5. Алекс Ю (AlexO) 28.07.14 10:29
(4) FIConsult,
да, восстанавливается вся ссылочная целостность

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

Поиск 30 доков в "сыром размере SQL" 45 ГБ? 13 сек - это вполне и из 1С достижимо. Тем более, "чистые" запросы (из консоли) еще быстрее работают: 8 сек на 120ГБ.
(4)
Код открыт, механизм реализации можно увидеть

Увы, если так по коду проверять на предмет "а как работает?!" каждую интересную обработку на ИС - не будешь не только не работать, но и не отдыхать ))
6. Алекс Ю (AlexO) 28.07.14 10:33
(0)вот это тоже не понятно:
алгоритм поиска ссылок средствами SQL был полностью переделан и оптимизирован

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

Т.е. что в какой момент работает - отбор и поиск "средствами" 1С, а удаление - средствами SQL? Только не прикрывайтесь "код открыт" - механизмы обработки в описании не обозначены почти никак... ))
7. Станислав Семенец (FIConsult) 28.07.14 12:06
алгоритм поиска ссылок средствами SQL был полностью переделан и оптимизирован
- имелось ввиду по сравнению с обработкой донаром http://infostart.ru/public/194718/

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

Тогда не должна существенно быстрее работать "чем из 1С".
- сравните...при моем сравнении - во много раз быстрее(в пакетном режиме для многих объектов).

Поиск 30 доков в "сыром размере SQL" 45 ГБ? 13 сек - это вполне и из 1С достижимо. Тем более, "чистые" запросы (из консоли) еще быстрее работают: 8 сек на 120ГБ.
- я действительно рад, что у Вас так все быстро и хорошо. Я никого не принуждаю использовать данную обработку насильно, скачивать ее, плюсовать и т.п.. Я ее разрабатывал для себя, ибо мне это было нужно в свое время и помогло быстро почистить базу (например отобрать в базе все помеченные на удаление документы и физически удалить те, на которых нет ссылок). Стандартные средства 1С - не устраивали по скорости. Если кому - то еще, кроме меня, она будет полезна - буду только рад. Если нет - не сильно расстроюсь :)
8. uno dos (unoDosTres) 20.02.15 13:23
(5) AlexO,
ой не поверю вообще что у вас универсальный запрос по всем метаданным отработает быстрей чем за 8 сек для поиска списка документов количеством 30 единиц, я вот про это
Поиск 30 доков в "сыром размере SQL" 45 ГБ? 13 сек - это вполне и из 1С достижимо. Тем более, "чистые" запросы (из консоли) еще быстрее работают: 8 сек на 120ГБ.

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