Имя: Пароль:
1C
1С v8
этот запрос можно оптимизировать?
0 z01
 
17.07.13
16:03
|ВЫБРАТЬ РАЗЛИЧНЫЕ
   |    ТаблицаРасшифровкаПлатежа.Заказ КАК Заказ,
   |    ВЫБОР КОГДА ТаблицаРасшифровкаПлатежа.Заказ.Организация.ГоловнаяОрганизация = &Организация ТОГДА
   |        ТаблицаРасшифровкаПлатежа.Заказ.Организация
   |    ИНАЧЕ
   |        &Организация
   |    КОНЕЦ КАК Организация
   |
   |ПОМЕСТИТЬ ТаблицаОбъектовРасчетов
   |ИЗ
   |    Документ.СписаниеБезналичныхДенежныхСредств.РасшифровкаПлатежа КАК ТаблицаРасшифровкаПлатежа
   |    
   |ГДЕ
   |    ТаблицаРасшифровкаПлатежа.Ссылка = &Ссылка
   |    И &ХозяйственнаяОперация В (
   |        ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратОплатыКлиенту),
   |        ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОплатаПоставщику),
   |        ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПеречислениеТаможне)
   |        )
   |
   |ИНДЕКСИРОВАТЬ ПО
   |    Заказ
   |;
   |/////////////////////////////////////////////////////////////////////////////
   |ВЫБРАТЬ РАЗЛИЧНЫЕ
   |    ТаблицаОбъектовРасчетов.Организация КАК Организация,
   |    &Контрагент КАК Контрагент,
   |    ТаблицаРасшифровкаПлатежа.Партнер КАК Партнер
   |ИЗ
   |    Документ.СписаниеБезналичныхДенежныхСредств.РасшифровкаПлатежа КАК ТаблицаРасшифровкаПлатежа
   |
   |    ВНУТРЕННЕЕ СОЕДИНЕНИЕ
   |        ТаблицаОбъектовРасчетов КАК ТаблицаОбъектовРасчетов
   |    ПО
   |        ТаблицаРасшифровкаПлатежа.Заказ = ТаблицаОбъектовРасчетов.Заказ
   |
   |    ЛЕВОЕ СОЕДИНЕНИЕ
   |        РегистрСведений.АналитикаУчетаПоПартнерам КАК Аналитика
   |    ПО
   |        ТаблицаОбъектовРасчетов.Организация = Аналитика.Организация
   |        И &Контрагент = Аналитика.Контрагент
   |        И ТаблицаРасшифровкаПлатежа.Партнер = Аналитика.Партнер
   |ГДЕ
   |    ТаблицаРасшифровкаПлатежа.Ссылка = &Ссылка
   |    И &ХозяйственнаяОперация В (
   |        ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратОплатыКлиенту),
   |        ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОплатаПоставщику),
   |        ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПеречислениеТаможне)
   |        )
   |    И Аналитика.КлючАналитики ЕСТЬ NULL
   |
   |ОБЪЕДИНИТЬ
   |
   |ВЫБРАТЬ РАЗЛИЧНЫЕ
   |    &Организация КАК Организация,
   |    &Контрагент КАК Контрагент,
   |    ТаблицаРасшифровкаПлатежа.Партнер КАК Партнер
   |ИЗ
   |    Документ.СписаниеБезналичныхДенежныхСредств.РасшифровкаПлатежа КАК ТаблицаРасшифровкаПлатежа
   |
   |    ЛЕВОЕ СОЕДИНЕНИЕ
   |        РегистрСведений.АналитикаУчетаПоПартнерам КАК Аналитика
   |    ПО
   |        &Организация = Аналитика.Организация
   |        И &Контрагент = Аналитика.Контрагент
   |        И ТаблицаРасшифровкаПлатежа.Партнер = Аналитика.Партнер
   |ГДЕ
   |    ТаблицаРасшифровкаПлатежа.Ссылка = &Ссылка
   |    И &ЗаявкаНаРасходованиеДенежныхСредств <> ЗНАЧЕНИЕ(Документ.ЗаявкаНаРасходованиеДенежныхСредств.ПустаяСсылка)
   |    И &ХозяйственнаяОперация В (
   |        ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратОплатыКлиенту),
   |        ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОплатаПоставщику),
   |        ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПеречислениеТаможне)
   |        )
   |    И Аналитика.КлючАналитики ЕСТЬ NULL
1 Жан Пердежон
 
17.07.13
16:05
можно
следующий
2 z01
 
17.07.13
16:07
а как?
3 RomaH
 
naïve
17.07.13
16:09
|ИЗ
   |    Документ.СписаниеБезналичныхДенежныхСредств.РасшифровкаПлатежа КАК ТаблицаРасшифровкаПлатежа
   |
   |    ЛЕВОЕ СОЕДИНЕНИЕ
   |        РегистрСведений.АналитикаУчетаПоПартнерам КАК Аналитика
   |    ПО
   |        &Организация = Аналитика.Организация
   |        И &Контрагент = Аналитика.Контрагент
   |        И ТаблицаРасшифровкаПлатежа.Партнер = Аналитика.Партнер

например можно во временную для начала
4 RomaH
 
naïve
17.07.13
16:10
+
   |ГДЕ
   |    ТаблицаРасшифровкаПлатежа.Ссылка = &Ссылка
   |    И &ЗаявкаНаРасходованиеДенежныхСредств <> ЗНАЧЕНИЕ(Документ.ЗаявкаНаРасходованиеДенежныхСредств.ПустаяСсылка)
   |    И &ХозяйственнаяОперация В (
   |        ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратОплатыКлиенту),
   |        ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОплатаПоставщику),
   |        ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПеречислениеТаможне)
   |        )
   |    И Аналитика.КлючАналитики ЕСТЬ NULL
5 НЕА123
 
17.07.13
16:11
|    И &ХозяйственнаяОперация В (
   |        ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратОплатыКлиенту),
   |        ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОплатаПоставщику),
   |        ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПеречислениеТаможне)
   |        )

для чего?
6 hhhh
 
17.07.13
16:13
(2) вот это должно дико тормозить

 |    ЛЕВОЕ СОЕДИНЕНИЕ
   |        РегистрСведений.АналитикаУчетаПоПартнерам КАК Аналитика


потому что ты весь регистр присоединяешь.
7 viktor_vv
 
17.07.13
16:29
(6) С чего бы ему торомозить-то ?
8 z01
 
18.07.13
09:22
я вот думаю если временную таблицу в запрос обратно запихнуть лучше не станет?
9 viktor_vv
 
18.07.13
09:32
(8) А что значит тормозит? Там же вроде по одному документу выполяется, не должно тормозить особо. Может оно конечно в цикле выполняется :).
Выполни их отдельными запросами,чтобы понять на каком тормоза.
10 hhhh
 
18.07.13
09:45
(7) допустим в регистре сто миллионов записей. И они все попадают в проверку левого соединения.
11 hhhh
 
18.07.13
09:47
(10)+ я понял почему, поле Аналитика.Партнер в регистре не проиндексировано.
12 z01
 
18.07.13
09:52
(9)обработка загрузки тащит это счастье по com. мне показалось что как-то не очень шустро и замер показал что именно исполнение это запроса сожрало около 35% времени. остальное мелочи.
13 z01
 
18.07.13
09:54
(11)всё что там можно проиндексировать из 1С уже проиндексировано, сам скуль вроде не сообщает о необходимости дополнительных индексов
14 kosts
 
18.07.13
09:57
Операция "В" может быть не оптимальной, попробуй для эксперимента сделать отдельные запросы, а потом объединить.
15 kosts
 
18.07.13
10:00
Кстати


&ХозяйственнаяОперация В (
   |        ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ВозвратОплатыКлиенту),
   |        ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОплатаПоставщику),
   |        ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ПеречислениеТаможне)
   |        )


что за конструкция, это же можно вычислить вне запроса
16 viktor_vv
 
18.07.13
11:05
(10) А какая разница сколько там записей? При создании временной таблицы так же само условие будет проверяться по всем записям.
Таки там наличие подходящих индексов играет роль.
Независимо от того, куда вы едете — это в гору и против ветра!