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