С Костя

139
Рейтинг

doom2good
Костя С



  •   Регистрация: 11.11.2010 (13 лет назад)

  •   Был(а) на сайте: вчера в 14:51

Подписчики 8

Группы

Профессиональный разработчик

Рейтинг 139

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

Статья Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m) Внешняя обработка (ert,epf) HighLoad оптимизация

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

09.01.2024    6846    doom2good    49       

65

Мониторинг состояния с отправкой в telegram

Инструменты и обработки Системный администратор Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х Абонемент ($m) Внешняя обработка (ert,epf) Журнал регистрации Инструменты администратора БД Мониторинг Мессенджеры и боты

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

3 стартмани

26.09.2023    1876    11    doom2good    10       

14

Отладка расчета себестоимости в ERP - просмотр изменений временных таблиц

Инструменты и обработки Программист Бухгалтерский учет 1С:ERP Управление предприятием 2 Бухгалтерский учет Абонемент ($m) Внешняя обработка (ert,epf) Инструментарий разработчика

Как уследить за изменениями в сотне временных таблиц на различных этапах выполнения расчета себестоимости. Тестировалось на 1С:ERP Агропромышленный комплекс 2 (2.4.12.75)

1 стартмани

09.09.2020    11526    39    doom2good    5       

27

Перенос данных по НДС из филиала в головную организацию для формирования книги покупок, книги продаж

Инструменты и обработки Системный администратор Программист Бухгалтер Платформа 1С v8.3 1С:Бухгалтерия 2.0 Россия Бухгалтерский учет НДС Абонемент ($m) Документ XML Файловый обмен (TXT, XML, DBF), FTP

Правила обмена для переноса данных, необходимых для заполнения книги покупок и книги продаж в головной организации данными филиала (Обособленного подразделения). Для случая, когда и филиал, и головная организация работают в типовой БП 2.0 Тестировалось для БП 2.0.64.36

3 стартмани

19.10.2015    6923    2    doom2good    2       

1

Комментарии

HighLoadУдаление строк из таблицы значений различными способами с замером производительности#15 09.01.24 15:37
(14) про индексацию отвечал в сообщении (10)
А вообще, это тема для отдельного замера
HighLoadУдаление строк из таблицы значений различными способами с замером производительности#12 09.01.24 13:58
(11) Выгрузка используется только в 5 и 6 способах. 6 не рассматриваем т.к. он чисто справочно приведён (там, понятно, индекс поможет). А в 5 случае мы выгружаем по колонке с типом булево. Индекс булевой колонки не даст прироста производительности, на сколько мне известно.
HighLoadУдаление строк из таблицы значений различными способами с замером производительности#10 09.01.24 13:52
(6) в плане - будет ли дольше работать если таблица проиндексирована?
HighLoadУдаление строк из таблицы значений различными способами с замером производительности#9 09.01.24 13:51
(8)
Цитата
пошел по пути "складирования" удаляемых строк в массив с последующим удалением строк при обходе подготовленного массива, так как количество удаляемых строк мало (буквально 5-10) при относительно большом количестве строк (около 2 тыс.). Колонок около 15.
Это самый оптимальный вариант в таком случае. Выгрузка-загрузка, думаю, займёт больше времени.
HighLoadУдаление строк из таблицы значений различными способами с замером производительности#5 09.01.24 11:24
(2)
Цитата
1. Есть еще такой механизм как ПостроительЗапроса, с помощью которого можно отобрать строки в таблице значений.
Пришлите пожалуйста код, я не работал с ним. Это не будет то же что и запрос по производительности?

(2)
Цитата
2. Есть мнение, что если нужно отобрать по данным БД (типа Номенклатура.Код > 1000 и Контрагент.Регион В (&МассивРегионов) ) то лидеры будут совсем другие.
Согласен. Я это преимущество тоже отметил в итогах. Но, здесь сравнивал именно скорость удаления строк.
HighLoadУдаление строк из таблицы значений различными способами с замером производительности#4 09.01.24 11:19
(3) если обходить с конца, будет незначительный выигрыш по памяти т.к. не придётся хранить массив строк. Самое долгое в этом способе - само удаление.
По производительности какие-то крохи даст отказ от лишнего обхода массива. Если правильно понимаю, при оценке алгоритмической сложности это вообще не учитывается.
Но, спасибо за идею. Будет время - проведу сравнение обоих способов. Уверен, ваш будет чуть быстрее, процентов на 5.
HighLoadУдаление строк из таблицы значений различными способами с замером производительности#1 08.01.24 21:57
Прикрепляю результаты замеров и обработку

Прикрепленные файлы:

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