К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Чем на оптимален такой запрос?

Гость
0 - 03.06.2016 - 09:20
ВЫБРАТЬ
ПодЗапрос.Номенклатура КАК Номенклатура,
ПодЗапрос.Характеристика КАК Характеристика,
ПодЗапрос.Количество КАК КоличествоПоДокументу,
ОстаткиТоваров.КоличествоОстаток КАК КоличествоНаСкладе
ИЗ
(ВЫБРАТЬ
РеализацияТоваровТовары.Номенклатура КАК Номенклатура,
РеализацияТоваровТовары.Характеристика КАК Характеристика,
СУММА(РеализацияТоваровТовары.Количество) КАК Количество
ИЗ
Документ.РеализацияТоваров.Товары КАК РеализацияТоваровТовары
ГДЕ
РеализацияТоваровТовары.Ссылка = &ТекущийДокумент

СГРУППИРОВАТЬ ПО
РеализацияТоваровТовары.Номенклатура,
РеализацияТоваровТовары.Характеристика) КАК ПодЗапрос
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыОрганизаций.Остатки(, Склад = &Склад) КАК ОстаткиТоваров
ПО (ОстаткиТоваров.Номенклатура = ПодЗапрос.Номенклатура)
И (ОстаткиТоваров.Характеристика = ПодЗапрос.Характеристика)
ГДЕ
ЕСТЬNULL(ОстаткиТоваров.КоличествоОстаток, 0) - ПодЗапрос.Количество < 0



Гость
1 - 03.06.2016 - 09:35
Было бы предпочтительнее построение на временных таблицах?
Гость
2 - 03.06.2016 - 12:06
РегистрНакопления.ТоварыОрганизаций.Остатки(, Склад = &Склад) - суть - запрос для построения виртуальной таблицы по всей номенклатуре. Ограничь.
Далеко не факт что оптимизатор скуля успеет разобраться что у тебя потом левое соединение к короткому списку
Гость
3 - 03.06.2016 - 12:38
2-roma n > А как оптимизатор сумеет "разобраться"? Что такое "короткий список"? Это скоко в удавах?
:)

Мне кажется вообще дурным тоном полагаться на подобные конструкции. Есть же средства прямой оптимизации.
Если, конечно, вообще есть нужда в оптимизации. Зачастую время писания продолжительнее суммарного времени исполнения.
Гость
4 - 03.06.2016 - 12:50
Можно просто товары документа запросом уложить в список, а затем уже запрос по товарам на складе. Но думаю тут мышиная возня, ну будет запрос выполняться 1 сек или 1.2 сек ))
Гость
5 - 03.06.2016 - 12:57
(4) мышиная возня. В случае нормального регистра, да.
(0) Если это реальная проблема, а не тест - смотри закрывается ли регистр и, если sql, - актуальность статистики


К списку вопросов






Copyright ©, Все права защищены