|
Ускорение перебора выборки запроса |
☑ |
0
Slon747
04.11.20
✎
17:04
|
Запрос возвращает большой объем данных.
Обход результата запроса идет по группировкам, далее - вложенная Выбрать().
Пока ВыборкаНоменклатуры.Следующий() Цикл
....
ВыборкаХарактеристик = ВыборкаНоменклатуры.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаХарактеристик.Следующий() Цикл
....
КонецЦикла;
КонецЦикла;
Основное время тратится на эту строку:
ВыборкаХарактеристик = ВыборкаНоменклатуры.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Можно ли как-то ускорить получение данной выборки? Может есть каки-то механизмы типа индексирования результата запроса?
|
|
1
piter3
04.11.20
✎
17:17
|
Эээ, может запрос странный, покажи его хоть
|
|
2
RomanYS
04.11.20
✎
17:23
|
(0) >> Основное время тратится на эту строку:
ВыборкаХарактеристик = ВыборкаНоменклатуры.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Очень странно: или замер глючит, или всё другое реально заоптимизировано.
|
|
3
Slon747
04.11.20
✎
17:42
|
(1) Запрос гигантский, нет смысла выкладывай. Сам запрос оптимизирован и выполняется более-менее быстро.
(2) Там очень много данных в результате запроса. Данная строка выполняется более 100 тыс раз.
|
|
4
ДенисЧ
04.11.20
✎
17:43
|
Если запрос возвращает больше сотни тысяч значений, может - следует пересмотреть условия? Зачем тебе столько результатов?
|
|
5
RomanYS
04.11.20
✎
17:45
|
(3) Тогда логично: если запрос "простой", а результат объемный.
Покажи замер, строк 5-10 из топа по времени
|
|
6
Вафель
04.11.20
✎
17:53
|
сделай плоскую таблицу и меняй группировку сам по мере смены значения характеристики
|
|
7
fisher
04.11.20
✎
18:53
|
> Данная строка выполняется более 100 тыс раз.
И сколько в абсолютном времени это занимает?
|
|
8
fisher
04.11.20
✎
19:01
|
Т.е. более ста тысяч - это только ассортимента. Характеристик в разы больше, значит. Плюс вся хурма - выборка действительно немаленькая может выйти. А складируется она, ЕМНИП, во временные файлы. Если тормоза на таких базовых вещах - эффективнее смотреть на производительность звеньев инфраструктуры, чем на оптимизацию исходного кода. Ну там на SSD выноситься или в память.
|
|