Медленная работа запроса #633323


#0 by Lepochkin
Имеем следующий запрос ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ Он вызывается при открытии одной обработки. Дак вот. При открытии обработки он почему-то выполняется примерно 30 секунд, а если я этот запрос делаю в консоли запросов, то примерно 2 секунды. Откуда такая разница в производительности???
#1 by DrShad
точно именно запрос или все таки обработка результата тормозит?
#2 by Lepochkin
#3 by DrShad
а это сколько?
#4 by Lepochkin
НоменклатураДляПодбора - табличная часть обработки
#5 by Lepochkin
0,03%. за сорри не так прочитал
#6 by DrShad
и эта разница под одним юзером?
#7 by Lepochkin
ага
#8 by DrShad
странно, но проверить не на чем ибо у тебя конфа не типовая уже
#9 by Fragster
перенести все виртуальные таблицы во временные
#10 by hhhh
похоже вот эта фигня тормозит ДокументРезерва.Контрагент <> &Контрагент попытайтесь избавиться от нее любым способом.
#11 by Fragster
запрос в обработке в транзакции??
#12 by chelentano
выбери сначала номенклатуру из остатков во временную таблицу, потом в виртуальных таблицах накладывай условие на номенклатуру
#13 by Lepochkin
Нет. И честно у меня сомнения что выполнения запроса в транзакции даст прирост в скорости. Попробую как-нибудь...
#14 by Fragster
наоборот, выполнение запроса в транзакции замедляет
#15 by GLazNik
разная скорость выполнения запроса в консоли и в обработке - не показатель. там кеши какие нить могут быть и прочее. а вот оптимизировать запрос есть куда. например см . Кстати постепенно подключая таблицы можно будет понять где именно возникают тормаза.
#16 by Lepochkin
Ну у меня такое же мнение было. Пообщавшись с менеджерами выяснил, что резервный товар через эту обработку никто и не смотрит, потому переделал на ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Дата) КАК Резервы Результат - 7 секунд. Весьма неплохо, но все равно в 2,5 раза дольше чем в консоли...
#17 by Lepochkin
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ                          |    Наименование Этот вариант работает значительно дольше
#18 by GLazNik
эмъ... а что мешает при формировании таблицы срез использовать только номенклатуру из остатки?
#19 by Lepochkin
Человек может отгружать только с конкретного склада, так что срез в разрезе номенклатура-склад мне нужен
#20 by Fragster
обращение через две точки перенеси в первую таблицу
#21 by Fragster
РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, Номенклатура в (Выбрать Остатки.Номенклатура из Остатки) И ТипЦен = &ТипЦены)
#22 by Fragster
ну и товары в резерве тоже в ВТ.
#23 by SUA
а вообще выкинуть тогда?
#24 by Fragster
а резервы тоже, наверное, в разрезе склада
#25 by Lepochkin
Вообще выкинуть нельзя. Тогда резервы будут видны
#26 by Lepochkin
Конечный вариант. Более менее приемлемый. ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ                          |    Наименование Если есть еще идеи по оптимизации буду рад выслушать
#27 by Fragster
резервы не по складу?
#29 by akcent25
А здесь - РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата, Склад = &Склад) измерение Склад идет первым у регистра? Если нет, то его лучше проиндексировать.
#30 by НЕА123
НоменклатураДляПодбора.Загрузить(Запрос.Выполнить.Выгрузить);
#31 by Александр_Тверь
а ты случайно обработку запускаешь не под другим пользователем? А то как вариант у тебя полные права и нет RLS, а у пользователя под которым ты запускаешь - есть контроль RLS конструация "РАЗРЕШЕННЫЕ" указывает на то, что нужно выполнить дополнительную фильтрацию полученных данных в соответствии с RLs и это может вызывать существенное замедление.
#32 by Рыжий Лис
Убрать РАЗЛИЧНЫЕ
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С