Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Запрос 1С работает быстрее чем запрос на 1С++ (число прочтений - 3634 )
Kirk
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 6
Зарегистрирован: 06. Сентября 2006
Запрос 1С работает быстрее чем запрос на 1С++
09. Сентября 2006 :: 15:41
Печать  
Почему запрос написанный средствами 1С у меня работает быстрее чем запрос написанный с помощью 1С++?

В отчет нужно вытащить на какую суммы были заключены договора за период в разрезе контрагентов.

Запрос на 1С:

Период С Дата1 По Дата2;
ОбрабатыватьДокументы Проведенные;
Контрагент=Документ.Договор.Контрагент;
Стоимость=Документ.Договор.Стоимость;
Функция ВсегоСтоимость=Сумма(Стоимость);
Группировка Контрагент;

Запрос на 1С++:

SELECT
    $Док.Контрагент as [Контрагент $Справочник],
    SUM($Док.Стоимость) as Стоимость
FROM
    _1SJourn as Жур,
    $Документ.Договор as Док
WHERE
    Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата AND
    Жур.IDDocDef = $ВидДокумента.Договор AND
    Док.IDDOC=Жур.IDDOC  AND
    Жур.Closed & 1 = 1
GROUP BY
    $Док.Контрагент


Может я прямой запрос как-то криво написал?  Печаль Печаль Печаль Печаль Печаль
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Запрос 1С работает быстрее чем запрос на 1С++
Ответ #1 - 09. Сентября 2006 :: 19:45
Печать  
Kirk писал(а) 09. Сентября 2006 :: 15:41:
SELECT
    $Док.Контрагент as [Контрагент $Справочник],
    SUM($Док.Стоимость) as Стоимость
FROM
    _1SJourn as Жур
    left join $Документ.Договор as Док  on (Док.IDDOC = Жур.IDDOC)
WHERE
    Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата AND
    Жур.IDDocDef = $ВидДокумента.Договор AND
--     Док.IDDOC=Жур.IDDOC  AND
    Жур.Closed & 1 = 1
GROUP BY
    $Док.Контрагент

так попробуй
  
Наверх
IP записан
 
Psih
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 27
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Запрос 1С работает быстрее чем запрос на 1С++
Ответ #2 - 10. Сентября 2006 :: 07:15
Печать  
Интересно, если вместо
Цитата:
FROM
    _1SJourn as Жур
    left join $Документ.Договор as Док  on (Док.IDDOC = Жур.IDDOC)

поставить
Цитата:
FROM
    $Документ.Договор as Док
    inner join _1SJourn as Жур on (Док.IDDOC = Жур.IDDOC)


будет быстрее работать?
  
Наверх
 
IP записан
 
Kirk
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 6
Зарегистрирован: 06. Сентября 2006
Re: Запрос 1С работает быстрее чем запрос на 1С++
Ответ #3 - 10. Сентября 2006 :: 08:29
Печать  
Так на несколько секунд быстрее работает.

По реквизиту Контрагент включен отбор, т.е. получается реквизит индексированный.

Может я в запросе в индекс не попадаю?

Формирую отчет за год (примерно 300 тыс документов), прямой запрос выполняется примерно за 180 секунд, а черный запрос за 150 секунд.
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Запрос 1С работает быстрее чем запрос на 1С++
Ответ #4 - 10. Сентября 2006 :: 17:09
Печать  
А план выполнения смотрел?
Ну и укажи запросу индексы, в чем проблема?
  
Наверх
IP записан
 
Kirk
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 6
Зарегистрирован: 06. Сентября 2006
Re: Запрос 1С работает быстрее чем запрос на 1С++
Ответ #5 - 11. Сентября 2006 :: 16:44
Печать  
А где смотреть план выполнения?
  
Наверх
 
IP записан
 
Evgen
1c++ donor
Отсутствует



Сообщений: 33
Местоположение: Санкт-Петербург
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Запрос 1С работает быстрее чем запрос на 1С++
Ответ #6 - 12. Сентября 2006 :: 05:54
Печать  
Query Analyzer
  
Наверх
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Запрос 1С работает быстрее чем запрос на 1С++
Ответ #7 - 12. Сентября 2006 :: 08:59
Печать  
И?
  
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать