Имя: Пароль:
1C
1С v8
Оптимизация отчета, вытаскиваем запрос из цикла
0 chingiz
 
26.10.11
15:39
Итак есть отчет, в котором выводится время с периодичностью 5 минут. Все периоды занесены в массив, по которому идет цикл. Внутри цикла выполняется запрос на срез последних с 3х регистров. Таким образом видим актуальные цифры на каждое время. Но у меня получился типичный быдлокод, так что надо исправляться.

Пытался избавиться от цикла путем временной таблицы и пакета запросов. Но выполняет еще дольше...при том что я туда еще Регистр ЗначенийХарактеристик не добавил! Запрос конечно не супер выходит, много вложенных.
1 chingiz
 
26.10.11
15:43
И интересно еще : вообще бывает такое, что запрос в цикле будет быстрее одного запроса(даже хорошо составленного)?
2 mikecool
 
26.10.11
15:46
(1) нет
3 МихаилМ
 
26.10.11
15:53
для файловой версии -  возможно

для клиент-серверной - маловероятно
4 chingiz
 
26.10.11
15:55
(3) ага файловая версия:\ Читал конечно про замену вложенных временными таблицами, но автор оговаривался, что даст прирост только на sql, в других случаях только затормозит.
5 FIXXXL
 
26.10.11
15:57
(0) через ОБЪЕДИНИТЬ не пробовал? с динамическим построением текста запроса?
6 chingiz
 
26.10.11
16:00
(5) а что объединять, даты ?
7 FIXXXL
 
26.10.11
16:11
(6) запросы на срез последних
они ж по сути одинаковые? только параметр запроса (дата среза) меняется?
ну и установку изменяемых параметров  можно через цикл организовать
8 chingiz
 
26.10.11
16:21
(7) одинаковые. Спасибо за подсказку, подумаю. А по скорости точно быстрее выйдет? А то долго все переделывать ради попробовать.
9 chingiz
 
26.10.11
17:03
Отбой операции 8) Вот лень франчу было завести тестовую sql, и тестил только на файловой базе. Попробовал по удаленке у заказчика - выполняется в 6 раз быстрее!