Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Подскажите, что не оптимально в запросе?

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

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