Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Оптимизировать запрос ДС в Рознице

Оптимизировать запрос ДС в Рознице
Я
   егаис
 
30.04.18 - 18:17
Форма подбора товаров, надо выводить остаток и цену.
После ТиИ работает быстро некоторое время, потом начинаются ужасные тормоза.  База на постгри
Можно ли ак-то оптимизировать запрос?

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ТоварыНаСкладахОстатки0.КоличествоОстаток - ТоварыНаСкладахОстатки0.РезервОстаток КАК Склад0,
    ЦеныНоменклатурыЗакупочная.Цена КАК ЦенаЗакупочная,
    ЦеныНоменклатурыРозничная.Цена КАК ЦенаРозничная,
    ВЫРАЗИТЬ((ЦеныНоменклатурыРозничная.Цена / ЦеныНоменклатурыЗакупочная.Цена - 1) * 100 КАК ЧИСЛО(15,2)) КАК ПроцентНаценки,
    СправочникНоменклатура.Ссылка КАК Номенклатура,
    СправочникНоменклатура.ВидНоменклатуры КАК ВидНоменклатуры,
    СправочникНоменклатура.Марка КАК Марка,
    СправочникНоменклатура.ТоварнаяКатегория КАК ТоварнаяКатегория,
    СправочникНоменклатура.ТипНоменклатуры КАК ТипНоменклатуры,
    СправочникНоменклатура.Родитель КАК Родитель,
    СправочникНоменклатура.ВидНоменклатуры.ИспользованиеХарактеристик КАК ИспользованиеХарактеристик,
    СправочникНоменклатура.ЭтоГруппа КАК ЭтоГруппа,
    СправочникНоменклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    ВЫБОР
        КОГДА СправочникНоменклатура.ЭтоГруппа
            ТОГДА ВЫБОР
                    КОГДА СправочникНоменклатура.ПометкаУдаления
                        ТОГДА 7
                    ИНАЧЕ 6
                КОНЕЦ
        ИНАЧЕ ВЫБОР
                КОГДА СправочникНоменклатура.ПометкаУдаления
                    ТОГДА 1
                ИНАЧЕ 0
            КОНЕЦ + ВЫБОР
                КОГДА СправочникНоменклатура.ВидНоменклатуры.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыВеденияДополнительныхДанныхПоНоменклатуре.НеИспользовать)
                    ТОГДА 0
                ИНАЧЕ 2
            КОНЕЦ
    КОНЕЦ КАК ИндексКартинки,
    СправочникНоменклатура.КиЗГИСМ,
    СправочникНоменклатура.ПродукцияМаркируемаяДляГИСМ,
    СправочникНоменклатура.ОсобенностьУчета,
    СправочникНоменклатура.ДоговорПлатежногоАгента
ИЗ
    Справочник.Номенклатура КАК СправочникНоменклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаОстатка, Склад = &Склад0) КАК ТоварыНаСкладахОстатки0
            ПО СправочникНоменклатура.Ссылка = ТоварыНаСкладахОстатки0.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ЦеныНоменклатуры.Номенклатура КАК Номенклатура,
            МАКСИМУМ(ЦеныНоменклатуры.Цена) КАК Цена
        ИЗ
            РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаОстатка, ВидЦены = &ВидЦеныРозничная) КАК ЦеныНоменклатуры
        
        СГРУППИРОВАТЬ ПО
            ЦеныНоменклатуры.Номенклатура) КАК ЦеныНоменклатурыРозничная
        ПО СправочникНоменклатура.Ссылка = ЦеныНоменклатурыРозничная.Номенклатура
{ГДЕ
    (СправочникНоменклатура.Ссылка В
            (ВЫБРАТЬ
                Сегменты.Номенклатура
            ИЗ
                РегистрСведений.НоменклатураСегмента КАК Сегменты
            ГДЕ
                Сегменты.Сегмент = &СегментНоменклатуры))}
 
 
   2S
 
1 - 30.04.18 - 18:22
Запрос неполный. Порезано еще одно левое соединение похоже?
   triviumfan
 
2 - 30.04.18 - 18:35
С виду криминального ничего нет. Может статистика кривая или индексы. Нужен план запроса.
   mexanik_96
 
3 - 01.05.18 - 04:18
"Форма подбора товаров" - дин список?
   DmVl76
 
4 - 02.05.18 - 10:18
(0) Статистика/индексы пересчитываются?

Можно попробовать список номенклатуры с наложенным фильтром  в ВТ, запросы к регистрам тоже убрать из левых соединений в ВТ с фильтром по номенклатуре в условиях виртуальной таблицы.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует