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


Помогите оптимизировать запрос

Помогите оптимизировать запрос
Я
   Demetri__
 
15.04.18 - 20:10
Есть банальный запрос, который возвращает курс валюты на дату документов выбранных за период:

ВЫБРАТЬ
    РеализацияТоваровУслуг.Ссылка КАК Ссылка,
    МАКСИМУМ(КурсыВалют.Период) КАК Период,
    КурсыВалют.Валюта КАК Валюта
ПОМЕСТИТЬ МаксДатыРегистраВалют
ИЗ
    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалют
        ПО (РеализацияТоваровУслуг.ВалютаДокумента = КурсыВалют.Валюта)
            И (РеализацияТоваровУслуг.Дата >= КурсыВалют.Период)
ГДЕ
    РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаНач И &ДатаКон

СГРУППИРОВАТЬ ПО
    РеализацияТоваровУслуг.Ссылка,
    КурсыВалют.Валюта
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    МаксДатыРегистраВалют.Ссылка КАК Ссылка,
    КурсыВалют.Валюта КАК Валюта,
    КурсыВалют.Курс КАК Курс,
    МаксДатыРегистраВалют.Период КАК Период
ИЗ
    МаксДатыРегистраВалют КАК МаксДатыРегистраВалют
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалют
        ПО МаксДатыРегистраВалют.Валюта = КурсыВалют.Валюта
            И МаксДатыРегистраВалют.Период = КурсыВалют.Период



Как можно его оптимизировать, что бы был один запрос (если это возможно) и что бы работал быстрее при большом количестве данных?
 
 
   Ботаник Гарден Меран
 
1 - 15.04.18 - 20:13
Ссылка здесь зачем?
   H A D G E H O G s
 
2 - 15.04.18 - 20:16
(0) Никак.
Только хранить курс в документе (как в типовых), либо в отдельном РС.
   Лефмихалыч
 
3 - 15.04.18 - 21:42
(0) денормализация только спасет
   Волшебник
 
4 - 15.04.18 - 22:05
   drei
 
5 - 15.04.18 - 22:07
   vvp91
 
6 - 15.04.18 - 22:30
(0) Например, как в примере ниже (это ЕРП):
ВЫБРАТЬ
    ТТ.Регистратор
    ,ТТ.ВалютаДокумента
    ,ТТ.СуммаВВалютеДокумента
    ,ТТ.Период
    ,ТТ.СуммаВыручки
    ,ТТ.СуммаВыручкиСНДСРегл
    ,Курсы.Период
    ,Курсы.Курс
ИЗ 
    РегистрНакопления.ВыручкаИСебестоимостьПродаж КАК ТТ
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК Курсы
        ПО Курсы.Период <= ТТ.Период
        И Курсы.Валюта = &ВалютаУпр
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК Будущее
        ПО Будущее.Период > Курсы.Период
        И Будущее.Период <= ТТ.Период
        И Будущее.Валюта = &ВалютаУпр
ГДЕ
    Будущее.Период ЕСТЬ NULL


Подумать и приготовить по аналогии.

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