Ускоряем удаление объектов штатной обработки комментарием 1 строчки кода

24.04.19

База данных - HighLoad оптимизация

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

В типовой обработке Удаление помеченных объектов используются 2 механизма работы

1. в монопольном режиме выполняется процедура УдалитьОбъекты

2. в конкурентном режиме объекты удаляются в транзакции с проверкой ссылочной связи

Режим 2 подходит для повседневных задач, однако время удаления возрастает за счет того, что передается информация на клиент об удаляемых объектах

В модуле менеджера обработки я нашел такой код

// Регистрация сообщения для чтения из клиентского сеанса.
ДлительныеОперации.СообщитьПрогресс(Процент, Текст);

Который как раз отвечает за передачу информации в пользовательский сеанс

Код находится в процедуре ОтметитьПрогрессОбходаКоллекции(ПараметрыВыполнения, ИмяКоллекции), в начале которой есть строчки

Если Не ПараметрыВыполнения.Интерактивное Тогда
	Возврат;
КонецЕсли;

То есть для того, чтобы передача на клиент не осуществлялась, нужно установить ПараметрыВыполнения.Интерактивное = Ложь

Данный параметр устанавливается в процедуре ИнициализироватьПараметры(ПараметрыВыполнения)

ПараметрыВыполнения.Вставить("Интерактивное",          ПараметрыВыполнения.Свойство("ПериодЗаписи"));

Получается, что значение параметра определяется наличием ключа ПериодЗаписи в передаваемых параметрах в экспортную процедуру модуля УдалитьПомеченныеОбъектыИнтерактивно(ПараметрыВыполнения, АдресХранилища)

Поиск места, где этот параметр устанавливается, привели меня в модуль формы ОсновнаяФорма в функцию ЗапуститьФоновоеЗадание(Знач ПараметрыМетода) к строчке

ПараметрыМетода.Вставить("ПериодЗаписи", 3); // Секунд

Которую я просто закомментировал

// ПараметрыМетода.Вставить("ПериодЗаписи", 3); // Секунд

Теперь обработка стала удалять объекты быстрее

 

P.S. Если хотите, чтобы во время выполнения крутился бублик, как на скриншоте ниже

Нужно исправить строчку

ПоказыватьБублик = ПараметрыМетода.УдалятьПомеченные И Монопольно;

На

ПоказыватьБублик = ПараметрыМетода.УдалятьПомеченные;

В той же функции ЗапуститьФоновоеЗадание(Знач ПараметрыМетода)

См. также

Оптимизация нагрузки на ЦП сервера СУБД используя типовые индексы

HighLoad оптимизация Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Анализ простого плана запроса. Оптимизация нагрузки на ЦП сервера СУБД используя типовые индексы.

13.03.2024    2963    spyke    26    

42

Быстродействие типовой 1С

HighLoad оптимизация Платформа 1С v8.3 Бесплатно (free)

Оказывается, в типовых конфигурациях 1С есть, что улучшить!

13.03.2024    5099    vasilev2015    19    

37

Анализируем SQL сервер глазами 1С-ника

HighLoad оптимизация Инструменты администратора БД Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Обработка для простого и удобного анализа настроек, нагрузки и проблем с SQL сервером с упором на использование оного для 1С. Анализ текущих зааросов на sql, ожиданий, конвертация запроса в 1с и рекомендации где может тормозить

1 стартмани

15.02.2024    7625    158    ZAOSTG    67    

96

Удаление строк из таблицы значений различными способами с замером производительности

HighLoad оптимизация Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Встал вопрос: как быстро удалить строки из ТЗ? Рассмотрел пять вариантов реализации этой задачи. Сравнил их друг с другом на разных объёмах данных с разным процентом удаляемых строк. Также сравнил с выгрузкой с отбором по структуре.

09.01.2024    5966    doom2good    48    

63

Опыт оптимизации 1С на PostgreSQL

HighLoad оптимизация Бесплатно (free)

При переводе типовой конфигурации 1C ERP/УТ/КА на PostgreSQL придется вложить ресурсы в доработку и оптимизацию запросов. Расскажем, на что обратить внимание при потерях производительности и какие инструменты/подходы помогут расследовать проблемы после перехода.

20.11.2023    8850    ivanov660    6    

76

ТОП проблем/задач у владельцев КОРП лицензий 1С на основе опыта РКЛ

HighLoad оптимизация Бесплатно (free)

Казалось бы, КОРП-системы должны быть устойчивы, быстры и надёжны. Но, работая в рамках РКЛ, мы видим немного другую картину. Об основных болевых точках КОРП-систем и подходах к их решению пойдет речь в статье.

15.11.2023    5097    a.doroshkevich    20    

72

Начните уже использовать хранилище запросов

HighLoad оптимизация Запросы

Очень немногие из тех, кто занимается поддержкой MS SQL, работают с хранилищем запросов. А ведь хранилище запросов – это очень удобный, мощный и, главное, бесплатный инструмент, позволяющий быстро найти и локализовать проблему производительности и потребления ресурсов запросами. В статье расскажем о том, как использовать хранилище запросов в MS SQL и какие плюсы и минусы у него есть.

11.10.2023    16166    skovpin_sa    14    

98
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. BigClock 24.04.19 15:15 Сейчас в теме
Для быстрого удаления помеченных уже есть обработка с альтернативным алгоритмом контроля
https://infostart.ru/public/557217/
С ее помощью можно ускорить удаление в несколько раз, единственное ограничение - работа только
в режиме толстого клиента.

Хотелось бы узнать, какое ускорение Вы получили с использованием предлагаемых доработок
стандартной обработки?
2. w.r. 643 24.04.19 20:20 Сейчас в теме
(1)

Обработка по вашей ссылке не подходит для большинства современных конфигураций, так как они на управляемых формах и работают в режиме тонкого клиента
3. BigClock 24.04.19 22:03 Сейчас в теме
(2) Рекомендуемая мной обработка как раз таки подходит для задачи однократного удаления большого количества помеченных на удаление объектов. Обработка работает на управляемых формах, но в режиме толстого клиента. По сравнению со стандартной обработкой ускорение в разы. Несколько тысяч объектов ей можно удалить в течение буквально одного-двух часов (в зависимости от количества), тогда как стандартная обработка над тем же количеством может работать целые сутки. Для регулярного удаления нескольких сотен объектов вполне подойдёт и стандартная обработка.
В связи с этим и хотелось узнать, проводили ли Вы какие-то замеры производительности Ваших доработок? На какое ускорение можно рассчитывать?
4. w.r. 643 25.04.19 04:04 Сейчас в теме
(3)

Хорошо. Напишите какие конфигурации 1С сейчас работают в режиме толстого клиента на управляемых формах
5. mvk4d 25.04.19 08:18 Сейчас в теме
(4) , это же обработка не для всех пользователей. А кто, например, работает с инструментами разработчика (админы, программисты), практически всегда запускаются в толстом клиенте! Это например актуально для инструментов разработчика в виде расширения. Там толстый клиент и управляемые формы.
То есть в чем проблема запустить любую современную конфигурацию в толстом клиенте, если эта обработка действительно сэкономит столько времени?

PS. Это вы еще СКД в пользовательском режиме не настраивали для некоторых механизмов современных конфигураций (например, механизм планирования в ERP и др.). Там обязательно в толстом клиенте надо запускаться, по другому никак.
6. w.r. 643 25.04.19 09:40 Сейчас в теме
(5)

В публикации описывается типовая обработка, входящая в состав БСП, соответственно во многие конфигурации формы 1С. Пользуются ей обычные пользователи

Для экономии времени можно использовать удаление в монопольном режиме
7. mvk4d 25.04.19 10:06 Сейчас в теме
(6) , так вопрос ведь не в этом был. Вас 2 раза спросили:

1. Хотелось бы узнать, какое ускорение Вы получили с использованием предлагаемых доработок
стандартной обработки?

2. В связи с этим и хотелось узнать, проводили ли Вы какие-то замеры производительности Ваших доработок? На какое ускорение можно рассчитывать?

Вы оба вопроса проигнорировали и предпочли начать дискуссию о том, что толстый клиент - это ограничение.

"Для экономии времени можно использовать удаление в монопольном режиме" - тогда непонятно зачем ваша обработка, если она не экономит время. Если экономит, по сравнению с типовой, то смотрите вопросы выше, тоже хотелось бы знать ответы на них. Если не измеряли ускорение, то так и напишите.
IgorS; jaroslav.h; +2 Ответить
9. w.r. 643 25.04.19 10:52 Сейчас в теме
(7)

Мне кажется уже пошла демагогия. Замеры можете провести сами, если хотите. Я вам приводить их не обязан. Если считаете, что передача информации из сеанса фонового задания в пользовательский сеанс не занимает время - тогда флаг вам в руки и барабан на шею

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

p.s. я денег за информацию не беру, в отличие от альтернативных методов. Не хотите - не пользуйтесь, но и не тролльте
15. jaroslav.h 180 01.05.19 23:02 Сейчас в теме
(9) Вася, ты научись читать между своей не понятной злостью и аргументированными вопросами. Кто тебя, как ты пишешь "тролит"?! Тебе вопрос задали, который, и меня интересует, а ты сразу "воюешь".

Мне вот тоже интересно, на твоей системе узнать, как было до и после, что бы понимать, тратить мне время, на твои советы.

Напиши вроде "На 100000000000 объектов, до было Так, стало Так", че сложного?!
16. w.r. 643 02.05.19 06:25 Сейчас в теме
(15)

Меня тоже много что интересует. Но чтобы получить ответы на свои вопросы, я не наезжаю, а вежливо спрашиваю. И тебе советую делать так же
17. jaroslav.h 180 02.05.19 17:57 Сейчас в теме
(16) как ты так и к тебе


не борзей Васька, ты же понимаешь, что понос тут разводить толку мало, рукою с моника не достанишь по мягкому месту
8. melis 95 25.04.19 10:25 Сейчас в теме
(4) Любую типовую конфигурацию от 1С можно запустить в этом режиме, вот доработки могут его порой не поддерживать... но и это решаемо
user633533_encantado; +1 Ответить
11. Xershi 1474 01.05.19 19:16 Сейчас в теме
(4) все конфигурации на УФ работают в толстом клиенте, похоже вы не в теме=))
12. w.r. 643 01.05.19 19:36 Сейчас в теме
(11)

Точно знаю, что были ошибки в некоторых конфигурациях при работе в толстом клиенте. По моему связанные с параметрами сеанса, но точно не помню
13. Xershi 1474 01.05.19 19:45 Сейчас в теме
(12) наверно перепутали с ОФ.
14. w.r. 643 01.05.19 19:47 Сейчас в теме
(13)

Точно не перепутал. Запускал УФ + толстый клиент
10. rovenko.n 01.05.19 10:39 Сейчас в теме
"ПоказыватьБублик" - отличное название :-)
milov.aleksey; Daniayr; +2 Ответить
18. Andrey73 27.10.20 11:43 Сейчас в теме
Проверил с секундомером, минута и 25 секунд что с отображением прогресса, что без "передачи информация на клиент об удаляемых объектах". Нет никакой разницы, кроме того, что не видно сколько удалилось а сколько еще осталось.

Комп по ТРС тесту Гилева 77 попугаев, так что полторы минуты достаточно.

В мусорку.
tof; al.gerasimov; x.vts; +3 Ответить
19. x.vts 17.01.21 14:44 Сейчас в теме
(18) Можете в личку написать
20. user1074471 3 30.11.23 19:30 Сейчас в теме
Надо проверить еще раз:)
Оставьте свое сообщение