|
Построитель отчета долго выполняет запрос. | ☑ | ||
---|---|---|---|---|
0
1Сергей
09.12.13
✎
08:31
|
Использую УниверсальныйОтчет. Пакет запросов выполняется в консоли отчетов за 17 сек., в УО, в построителе зависает на строке:
Ждал два часа - не дождался. Возникают вопросы: 1. Целесообразно ли использовать пакет запросов в построителе? 2. Действительно ли один и тот же запрос выполняется за разное количество времени в Построителе и просто в коде? 3. Может, что-то не так в запросе? На что обратить внимание? ЗЫ Запрос не выкладываю ибо простыня. |
|||
1
Zero on a dice
09.12.13
✎
08:42
|
ЗаполнитьНастройки() есть?
давеча обнаружил "фишку", при использовании без этого метода, вроде как выполняется, но при следующем обращении к построителю зажирает всю возможную память и падает - даже на пустом результате запроса. |
|||
2
1Сергей
09.12.13
✎
08:43
|
(1) Нет такого в Универсальном отчете
|
|||
3
Zero on a dice
09.12.13
✎
08:46
|
через слово читал, прошу прощения
|
|||
4
Fragster
модератор
09.12.13
✎
08:47
|
(0) т.е. запроса и настроек не будет?
|
|||
5
Fragster
модератор
09.12.13
✎
08:48
|
ну и у построителя еще неплохо бы глянуть то, что он там сгенерил - чисто для понимания.
|
|||
6
ДенисЧ
09.12.13
✎
08:48
|
(4) А зачем тебе? Тебе же показали строку торможения....
:-))))) |
|||
7
1Сергей
09.12.13
✎
08:48
|
(5) в смысле сгенерил? Как это посмотреть?
|
|||
8
Fragster
модератор
09.12.13
✎
08:49
|
(7) у (6) купи синтакс-помошник, там все методы построителя описаны
|
|||
9
1Сергей
09.12.13
✎
08:49
|
(6) продай сп
|
|||
10
Fragster
модератор
09.12.13
✎
08:50
|
получитьзапрос или что-то типа того
|
|||
11
1Сергей
09.12.13
✎
08:51
|
(10) нашел, спс.
Сейчас выложу |
|||
12
1Сергей
09.12.13
✎
08:51
|
|
|||
13
1Сергей
09.12.13
✎
08:52
|
это уже сгенерированный
|
|||
14
Fragster
модератор
09.12.13
✎
08:53
|
зачем тебе временные таблицы, если ты все равно 100500 вложенных запросов забабахал?
|
|||
15
Fragster
модератор
09.12.13
✎
08:55
|
а тормозят подобные условия: ГДЕ
ДОБАВИТЬКДАТЕ(ВсеОбороты.Период, ДЕНЬ, ВсеОбороты.УсловияОплаты) >= &ДатаОстатков) |
|||
16
1Сергей
09.12.13
✎
08:55
|
(14) дык вложенные из ВТ и тянут
|
|||
17
Wobland
09.12.13
✎
08:55
|
(13) у тебя же бесполезно искать всяческие операции со строками и через точку? и сколько времени ушло на генерацию?
//построитель не люблю, построителем не интересуюсь |
|||
18
Fragster
модератор
09.12.13
✎
08:56
|
(15)+ считай дату в ВТ_Всеобороты и сравнивай ее
|
|||
19
Fragster
модератор
09.12.13
✎
08:57
|
а еще лучше - дополнительно и интервалы посчитать там же
|
|||
20
Fragster
модератор
09.12.13
✎
08:57
|
чтобы потом один раз соединять
|
|||
21
Fragster
модератор
09.12.13
✎
08:58
|
тогда добавление индекса на ВТ_всеобороты по полям соединения будет иметь смысл
|
|||
22
1Сергей
09.12.13
✎
09:00
|
(19) в смысле, в ВТ определить к какому из интервалов относится, а во втором запросе уже по колонкам распихать?
|
|||
23
1Сергей
09.12.13
✎
09:02
|
тут смысл в том, что нужно посчитать Дебиторскую задолженность по срокам долга, НО учитывая отсрочку оплаты по договору
|
|||
24
1Сергей
09.12.13
✎
09:08
|
(17) не замерял, но почти мгновенно
|
|||
25
1Сергей
09.12.13
✎
09:27
|
Всё-равно запрос (12) в консоли выполняется за 17 сек. А в построителе бесконечно.
Думаете, оптимизация поможет? |
|||
26
Fragster
модератор
09.12.13
✎
10:27
|
(25) убери автоупорядочивание
|
|||
27
m-serg74
09.12.13
✎
18:02
|
(13) а на хрена каждый раз новый параметр:
|
|||
28
Fragster
модератор
09.12.13
✎
18:04
|
(27) это построитель
|
|||
29
m-serg74
10.12.13
✎
08:20
|
(28) построитель для Организация придумал название "&Параметр3" что то не верится... да еще и для каждого объединения последовательно пронумеровал...
|
|||
30
Fragster
модератор
10.12.13
✎
10:24
|
(29) ну, тут ты сам волен проверить, какие имена построитель для своих отборов дает
|
|||
31
GANR
10.12.13
✎
10:57
|
(0) А что находиться в Построитель.ПолучитьЗапрос() ?
|
|||
32
m-serg74
10.12.13
✎
11:05
|
(30) причем тут вообще построитель? видно же что текст запроса не автоматом/универсально как то сформирован, а писан руками, и отборы не построительные, а обычные, что то я фигурных скобок не наблюдаю...
|
|||
33
Fragster
модератор
10.12.13
✎
12:01
|
(32)(31)... я, конечно, не автор, но в (13) написано, что приведенный текст запроса - то, что возвращает ПолучитьЗапрос...
|
|||
34
m-serg74
10.12.13
✎
12:05
|
(33)
[то, что возвращает ПолучитьЗапрос] <> то что построитель сам в тексте запроса намудрил:-) |
|||
35
Fragster
модератор
10.12.13
✎
12:08
|
(34) сфига ли?
|
|||
36
m-serg74
10.12.13
✎
12:12
|
(35) не понял вопроса, построитель сам угадывает что мы от него хотим?
|
|||
37
1Сергей
10.12.13
✎
12:15
|
Это не просто построитель, а универсальный отчет. Он сам придумывает имена параметрам и запихивает их в построитель.
|
|||
38
Fragster
модератор
10.12.13
✎
12:20
|
(36):
ВЫБРАТЬ Номенклатура.Ссылка ИЗ Справочник.Номенклатура КАК Номенклатура {ГДЕ Номенклатура.Ссылка.*} если установить отбор вида "Ссылка равно ..." в ПолучитьЗапрос() превращается в ВЫБРАТЬ Номенклатура.Ссылка КАК Ссылка ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ Номенклатура.Ссылка = &Параметр1 |
|||
39
m-serg74
10.12.13
✎
12:24
|
(38) понятно, не обращал как то внимания, извиняюсь что сразу не согласился :)
|
|||
40
GANR
10.12.13
✎
13:13
|
Открыл запрос конструктором http://xmage.ru/images/mlmmlm.png и у меня возникает вопрос - много ли данных в соединяемых таблицах? Если да - то понятие "быстро" для такого запроса неприменимо.
|
|||
41
1Сергей
10.12.13
✎
13:17
|
1 600 000 строк в запросе
|
|||
42
1Сергей
10.12.13
✎
13:17
|
(41) > (40)
|
|||
43
Fragster
модератор
10.12.13
✎
13:24
|
(41) выполнил мои рекомендации по определению вычисляемых полей прямо в первой таблице и одному соединению вместо кучи и без кучи вложенных запросов?
|
|||
44
Лефмихалыч
10.12.13
✎
13:25
|
(40) пятнадцать человек на сундук холодца, йо-хо-хо и ботинки гнома!
отличный запрос, ящетаю |
|||
45
1Сергей
10.12.13
✎
13:25
|
(44) ващета это из типовой УТ
|
|||
46
Лефмихалыч
10.12.13
✎
13:26
|
(45) что это меняет?
|
|||
47
1Сергей
10.12.13
✎
13:27
|
(43) переписываю весь запрос. Там самое интересно, что он вис, если не указано никакого отбора. Если отфильтровать по контру, например, то всё летает на "ура"
|
|||
48
1Сергей
10.12.13
✎
13:29
|
(46) и ещё он генерится в зависимости от настроек. Т.е. Сроков долга может быть сколько угодно. У меня так: http://savepic.net/4055540.png
|
|||
49
Лефмихалыч
10.12.13
✎
13:31
|
(47) и в чем вопрос-то? То, что без отборов оно работать не хочет, - это нормально и так и должно быть
|
|||
50
GANR
10.12.13
✎
13:31
|
(47) Естественно. Если в правой таблице N записей, а в левой M, то количество проверок условия соединения равняется M x N, а если отобрать M и N существенно уменьшатся.
|
|||
51
1Сергей
10.12.13
✎
13:33
|
(49) (50) Просто, я ещё в (0) спросил - что не так. Оказалось, что запрос рабочий, но не оптимизированный. О чем мне так никто и не сказал до сих пор
|
|||
52
1Сергей
10.12.13
✎
15:06
|
=========================================================================
Блин. Уже всю бошку сломал. Подскажите, почему в результат следущего запроса не попадают минуса?
|
|||
53
1Сергей
10.12.13
✎
15:09
|
Какой сакральный смысл брать только положительный приход и отрицательный расход?
|
|||
54
neckto
10.12.13
✎
15:22
|
(53) Сторно
А по теме: попробуй избавиться от вложенных запросов, сделай ввсе на временных таблицах. По одному запросу скармливай Построителю и Консоли, выяснишь, какой запрос тормозит. |
|||
55
1Сергей
10.12.13
✎
15:48
|
(54) Всё-равно не понятно почему в отчет по долгам не должны попадать сторно.
Подскажите, пожалуйста, где в подсказке написано про конструкции построителя {…} ? |
|||
56
neckto
10.12.13
✎
16:49
|
(55) Гуманитарий? Минус на минус дает плюс.
|
|||
57
1Сергей
10.12.13
✎
16:49
|
УРА!!! Я ЕГО ПОБЕДИЛ!
Сделал как в (54), как и советовали раньше. Переписал всё на ВТ. Теперь он выполняется несколько секунд. Спасибо всем оргомное!!! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |