|   |   | 
| 
 | ВЫБОР КОГДА в параметрах виртуальной таблицы. | ☑ | ||
|---|---|---|---|---|
| 0
    
        SeiOkami 13.05.13✎ 15:40 | 
        Имею два запроса. Не могу понять почему вариант 1 выполняется более чем в два раза быстрее второго. Неужели во втором запросе проблема в сравнении с параметром (он передается "Организация")?
  Первый запрос: ВЫБРАТЬ РАЗЛИЧНЫЕ БухгалтерскийОбороты.Регистратор Документ, БухгалтерскийОбороты.Организация ОрганизацияВДокументе, БухгалтерскийОбороты.Субконто1 Подразделение, БухгалтерскийОбороты.Субконто1.Владелец КАК ОрганизацияПодразделения ИЗ РегистрБухгалтерии.Бухгалтерский.Обороты(&НачПериод,&КонПериода, Регистратор, Счет В ИЕРАРХИИ (&Cчет44,&Счет91_02), , ) КАК БухгалтерскийОбороты ГДЕ БухгалтерскийОбороты.Организация <> БухгалтерскийОбороты.Субконто1.Владелец И (БухгалтерскийОбороты.Субконто1 Ссылка Справочник.ПодразделенияОрганизаций) Второй запрос (параметр = "Организация"): ВЫБРАТЬ БухгалтерскийОбороты.Регистратор Документ, БухгалтерскийОбороты.Организация ОрганизацияВДокументе, БухгалтерскийОбороты.Субконто1 Подразделение, БухгалтерскийОбороты.Субконто1.Владелец КАК ОрганизацияПодразделения ИЗ РегистрБухгалтерии.Бухгалтерский.Обороты( &НачалоПериода, &КонецПериода, Регистратор, Счет В ИЕРАРХИИ (&Cчет44, &Счет91_02), , ВЫБОР КОГДА &ОбъектСравнения = "Организации" ТОГДА ВЫБОР КОГДА Субконто1 ССЫЛКА Справочник.ПодразделенияОрганизаций ТОГДА Организация <> Субконто1.Владелец КОНЕЦ ИНАЧЕ Субконто3.Владелец <> Субконто2 КОНЕЦ, , ) КАК БухгалтерскийОбороты | |||
| 1
    
        SeiOkami 13.05.13✎ 15:42 | 
        пардон, &ОбъектСравнения передается "Организации"     | |||
| 2
    
        1Сергей 13.05.13✎ 15:43 | 
        Владелец субконто? не удивительно     | |||
| 3
    
        SeiOkami 13.05.13✎ 15:44 | 
        (2)
  и в первом и во втором запросе одни и те же условия. но скорость первого в два раза быстрее | |||
| 4
    
        SeiOkami 13.05.13✎ 15:45 | 
        когда избавляюсь от ВЫБОР КОГДА (оставляю только условия первого ТОГДА), то скорость сокращается в двое. В чем фишка?     | |||
| 5
    
        Maxus43 13.05.13✎ 15:45 | 
        используй параметр ВидыСубконто в вирт таблице лучше.
  (3) разные, субконто3 вобще не задействовано в 1-м | |||
| 6
    
        Maxus43 13.05.13✎ 15:46 | 
        (4) план запроса смотри, видимо превращает в кашу его твой выбор когда     | |||
| 7
    
        SeiOkami 13.05.13✎ 15:47 | 
        (5), но ведь по логике запроса сравнение "Субконто3.Владелец <> Субконто2" вообще не должно выполнятся     | |||
| 8
    
        1Сергей 13.05.13✎ 15:47 | 
        (4) или джойнить каждую строчку оборота регистра, или выбрать все строки регистра, а потом фильтрануть по джойну. Есть разница?     | |||
| 9
    
        Широкий 13.05.13✎ 15:48 | 
        (4) При конструкции "Выбор" скуль вроде как построчный перебор включает.
  Я давно эту тему копал. Вроде как даже это индекс юзать не будет: "Выбор Когда ИСТИНА Тогда Организация=&Организация Конец" | |||
| 10
    
        SeiOkami 13.05.13✎ 15:49 | 
        (8), то бишь предпочтительнее поместить мое условие в ГДЕ?
  я пробовал. так действительно быстрее. но почему? | |||
| 11
    
        Maxus43 13.05.13✎ 15:51 | 
        (10) да условия у тебя разные совершенно, перенеси то что в ГДЕ в условия один в один и посмотри разницу, без всяких выбор когда     | |||
| 12
    
        SeiOkami 13.05.13✎ 15:52 | 
        (11), в первом запросе?     | |||
| 13
    
        SeiOkami 13.05.13✎ 15:53 | 
        Я не пойму в чем разница условий. если параметр будет равен "Организации", то и заходить в "отличающееся" условие не должно     | |||
| 14
    
        Maxus43 13.05.13✎ 15:53 | 
        твоё условие лучше переделать впринципе, о чем уже говорил...
  ИЗ РегистрБухгалтерии.Хозрасчетный.Обороты(, , , , &ВидСубконтоПодразделенияОрганизации, Субконто1.Владелец = &Организация, , ) КАК ХозрасчетныйОбороты | |||
| 15
    
        SeiOkami 13.05.13✎ 15:54 | 
        (9), то бишь выбор когда тормозит выборку из виртуальных?     | |||
| 16
    
        Maxus43 13.05.13✎ 15:54 | 
        (13) должно не должно - этого платформа не знает, а план запроса делает так, как будто зайдёт вовсюда, тоесть в запросе другие таблицы присутсвуют     | |||
| 17
    
        Maxus43 13.05.13✎ 15:55 | 
        (15) нельзя так категорично утверждать, но возможно.
  например ИЛИ тоже тормозит работу, с ним индексы перестают использоваться | |||
| 18
    
        Ksandr 13.05.13✎ 15:55 | 
        ВЫРАЗИТЬ(Субконто1 КАК нибудь).Владелец     | |||
| 19
    
        SeiOkami 13.05.13✎ 15:56 | 
        дело в том, что запросом номер 2 я пытаюсь объединить два запроса, разница в которых лишь условие, чтобы поместить в СКД
  один запрос имеет условие: Организация <> Субконто1.Владелец второй условие: Субконто3.Владелец <> Субконто2 Не могу понять как реализовать это иначе =( | |||
| 20
    
        SeiOkami 13.05.13✎ 15:57 | 
        (14), то бишь передавать вид субконто? сейчас сделаю. но как быть с (19)     | |||
| 21
    
        Maxus43 13.05.13✎ 15:58 | 
        (20) если передашь вид субконто, то у тебя будет только Субконто1, причем правильного типа     | |||
| 22
    
        SeiOkami 13.05.13✎ 16:01 | 
        (21), но ведь таким макаром я вырублю условие Субконто3.Владелец <> Субконто2, которое использует два субконто.
  И все равно мне придется делать ВЫБОР КОГДА | |||
| 23
    
        viktor_vv 13.05.13✎ 16:05 | 
        (22) А субконто3 какого типа ? Поди тоже подразделение ?     | |||
| 24
    
        SeiOkami 13.05.13✎ 16:07 | 
        (23), неа - другой справочник     | |||
| 25
    
        SeiOkami 13.05.13✎ 16:08 | 
        просто такая простая задачка, а какой-то пресловутый ВЫБОР КОГДА все портит     | |||
| 26
    
        viktor_vv 13.05.13✎ 16:11 | 
        (25) Присоединюсь к (9), из-за Выбор индексы не используются.     | |||
| 27
    
        Maxus43 13.05.13✎ 16:15 | 
        (25) передай 2 вида субконто     | |||
| 28
    
        SeiOkami 13.05.13✎ 16:30 | 
        Спасибо, задачу решил просто передавая три вида субконто, которые используются в запросе.
  хотя до сих пор меня смущает странная логика наложения условия при ВЫБОР КОГДА... | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |