Имя: Пароль:
1C
 
Порционное выполнение запроса
0 Max57
 
05.06.26
17:13
Всем привет.

Есть свой РН Обороты.
По нему собираются данные в JSON.
Если период в запросе превышает месяц, запрос падает.
Я хочу реализовать запрос в цикле, предварительно разбив период на месяцы. Какие еще могут быть варианты оптимизации? Добавить автономер и выполнять с указание первые n не получится же, так как придется сначала выполнить за год, например, запрос, поместить в вт, а потом к ней делать в цикле запрос? Порядок записей от сотен тысяч до десятков миллионов.
1 Bigbro
 
05.06.26
17:16
а точно запрос падает? может падает вывод/формирование джейсона все же.
запрос имхо должен быть один а дальше результат уже нарезать в зависимости от ограничений.
2 Max57
 
05.06.26
17:17
(1) JSON тоже режется, собирается в файлы через поток.
3 lubitelxml
 
05.06.26
17:20
(0) покажи запрос. Что значит падает?
4 Lama12
 
05.06.26
17:46
(0)Полей которые дают уникальную запись много? Можно выбрать первые N делать. Результат помещать во временную таблицу. Потом делать тот-же запрос, но без того что есть во временной таблице. И так до конца.
5 Dmitrii
 
гуру
05.06.26
18:36
(0) >> запрос в цикле, предварительно разбив период на месяцы

ИМХО, нормальный вариант.
Вряд ли другие методы дадут хоть сколько-нибудь заметно более качественный результат. В (4) по сути это самое и предлагает - запрос в цикле.
6 Dmitrii
 
гуру
05.06.26
18:37
(0) >> запрос падает

Как и с какой ошибкой?
Просто интересно...
7 shuhard
 
05.06.26
18:41
(6) +1
[запрос падает] напрашивается на детализацию
8 Garykom
 
гуру
05.06.26
21:05
(0) Использовать параллельное выполнение на куче фоновых
Например весь период разбить на дни, запускать запрос в отдельном фоновом для каждого дня
Результат фоновых собирать в массив из ТЗ или сразу структур
Затем как все фоновые выполнятся - соединить в JSON
9 breezee
 
05.06.26
22:18
А зачем такая аналитика на регистре - если нельзя получить даже месяц оборотов?
10 timurhv
 
06.06.26
04:15
(0) Бля, как может запрос по РН Оборотам падать? Сиди ковыряй свои левые внутренние соединения и обращения через точку. Ну я блин не знаю, там что каждая позиция чека отражена в какой-нибудь х5 или Магните по всей РФ?
11 timurhv
 
06.06.26
04:21
Ну вот было типо остатки марок выгрузить в SAP (в Excel бля), а там 50+млн марок, надо выгрузить артикулы номенклатуры, код организации\склада, вот там да, запрос падал и Excel падал и сиди объясняй что ОЗУ на SQL в 2Гб недостаточно и Excel тоже говно.
Я к тому что явно в (0) не 4Гб ОЗУ выделено, чет не то все-таки. 10млн записей за месяц - это что?
12 timurhv
 
06.06.26
04:24
(9) Это скорее всего, ошибка проектирования. Кому она нужна - никому, РН тут нафик не нужен
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший