|
Подскажите, что не оптимально в запросе? | ☑ | ||
|---|---|---|---|---|
|
0
egmyh
22.02.20
✎
14:06
|
"ВЫБРАТЬ
| ТоварыНаСкладахОбороты.Период, | ТоварыНаСкладахОбороты.Склад, | ТоварыНаСкладахОбороты.Номенклатура, | ДвижениеТоваровОбороты.Распоряжение.АдресДоставки КАК АдресДоставки, | СУММА(ТоварыНаСкладахОбороты.ВНаличииОборот) КАК ВНаличииОборот, | СУММА(ТоварыНаСкладахОбороты.КОтгрузкеОборот) КАК КОтгрузкеОборот, | СУММА(ДвижениеТоваровОбороты.ПланируемоеПоступлениеОборот) КАК ПланируемоеПоступлениеОборот, | СУММА(ДвижениеТоваровОбороты.ПланируемаяОтгрузкаСоСкладаОборот) КАК ПланируемаяОтгрузкаСоСкладаОборот |ИЗ | РегистрНакопления.ТоварыНаСкладах.Обороты(&ДатаНачала, &ДатаОкончания, Неделя, ) КАК ТоварыНаСкладахОбороты | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ДвижениеТоваров.Обороты(&ДатаНачала, &ДатаОкончания, Неделя, ) КАК ДвижениеТоваровОбороты | ПО ТоварыНаСкладахОбороты.Номенклатура = ДвижениеТоваровОбороты.Номенклатура | И ТоварыНаСкладахОбороты.Склад = ДвижениеТоваровОбороты.Склад | |СГРУППИРОВАТЬ ПО | ТоварыНаСкладахОбороты.Номенклатура, | ТоварыНаСкладахОбороты.Склад, | ДвижениеТоваровОбороты.Распоряжение.АдресДоставки, | ТоварыНаСкладахОбороты.Период"; |
|||
|
1
ДенисЧ
22.02.20
✎
14:26
|
Левые соединения с виртуальными таблицами сильно не рекомендуются 1сом.
|
|||
|
2
ДенисЧ
22.02.20
✎
14:26
|
Да и правые тоже.
И даже внутренние. |
|||
|
3
egmyh
22.02.20
✎
14:46
|
А как нужно, через временные таблицы вроде нет смысла?
|
|||
|
4
shiling
22.02.20
✎
14:47
|
А чем у вас отличаются регистры? Для чего служат?
(3) Почему нет смысла? |
|||
|
5
Провинциальный 1сник
22.02.20
✎
14:55
|
Соединение с виртуальной таблицей == соединение с подзапросом. Подзапрос создает неявную временную таблицу, но в отличие от явной временной таблицы - на момент компиляции запроса оптимизатор СУБД не имеет информации о статистике данных в ней. И например постгрес очень часто ошибается, выбирая неверный план запроса, при котором идет соединение вложенными циклами с огромным массивом данных. При использовании же явных временных таблиц и пакетных запросов в постгресе последних версий задействуется патч online_analyze и таких ошибок не происходит, в результате запрос выполняется намного эффективнее.
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |