Оптимизация кода Запрос в цикле Или Таблица в БП3

1. Fox_65 1 09.08.20 11:51 Сейчас в теме
Дорогие коллеги! Хотелось узнать ваше мнение насчет оптимизации алгоритма одной задачи.
Требуется сравнить проводки в двух базах в разрезе регистраторов из списка. Один алгоритм - запрос по каждому регистратору из списка (Запрос в цикле). Этот алгоритм реализован, но работает не очень быстро. Второй алгоритм - выбрать сразу выбрать все проводки по списку одним запросом в таблицу и работать потом только с ней (отбор в таблице по регистратору). Будет ли второй способ быстрее и не будет ли переполнения памяти из-за объема таблиц?
По теме из базы знаний
Найденные решения
2. SlavaKron 09.08.20 12:01 Сейчас в теме
Конечно, второе. Не забудьте в ТЗ добавить индексы, чтобы НайтиСтроки работало быстрее.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. Sashares 34 09.08.20 18:34 Сейчас в теме
(1)
не будет ли переполнения памяти из-за объема таблиц?

Кто ж вам на это ответит?
6. o.nikolaev 213 09.08.20 19:02 Сейчас в теме
(1) "В разрезе регистраторов" - это как? Там еще хотя бы номер строки нужен. А если в одной из баз поменяли порядок записи движений, т.е. проводка - по всем своим полям - та же самая, но номера записей различаются. Если количество записей очень большое, то имеет смысл подумать о многопоточной сверке порциями, разбив, например по месяцам. Или, если документы те же в разных периодах, то можно пойти путем выполнения обновлений типовых, создать на плане обмена пачку узлов, в них зарегистрировать то что вы будете проверять и покатиться несколькими потоками (один узел - один поток).
2. SlavaKron 09.08.20 12:01 Сейчас в теме
Конечно, второе. Не забудьте в ТЗ добавить индексы, чтобы НайтиСтроки работало быстрее.
3. Fox_65 1 09.08.20 15:00 Сейчас в теме
(2)У меня сомнения только насчет объема таблиц. Движений очень много.
10. PiotrLoginov 11.08.20 17:12 Сейчас в теме
(3)64-битная версия платформы и оперативки побольше - и нет проблем
4. ab_initio 95 09.08.20 17:03 Сейчас в теме
А мне кажется, что лучше всего гибридное решение. Таблицы сравнивать, ну, например, пачками по 1000 штук, или, например, по месяцам, неделям и т.д.
alex-l19041; Sashares; +2 Ответить
7. starjevschik 09.08.20 22:03 Сейчас в теме
Интересный вопрос. Никаких сведений о базах, объемах, серверах, таблицах, что с чем сравниваем, ну ни о чем вообще мы ничего не знаем.
Но уже что-то оптимизируем.
За это тоже платят? Мож заняться...
9. Fox_65 1 10.08.20 01:56 Сейчас в теме
(7)Для тех, кто не знает, вопрос и не задавался.
8. Fox_65 1 10.08.20 01:54 Сейчас в теме
Спасибо всем. второй метод действительно быстрее. Причем намного. Раньше обработка списка документов (запрос в цикле) занимала минут 20. С таблицами не больше минуты.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот