| 
    
            
         
         | 
    
    
  | 
Очень долго обрабатывается запрос | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        Steynvor    
     03.07.14 
            ✎
    16:00 
 | 
         
        Всем доброго времени суток!
 
        1С:Предприятие 8.1 (8.1.15.14), самописная, не мной. Запрос выполняется по 2-10 минут, уже не понимаю что ему надо, может кто подскажет. Все тормозит на РезультатЗапроса = Запрос.Выполнить(); : Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ВводПутевогоЛистаСменыВПутевомЛисте.Ссылка.ГаражныйНомер КАК ГаражныйНомер, | ВводПутевогоЛистаСменыВПутевомЛисте.Водитель.Код КАК ТабельныйНомер, | ВводПутевогоЛистаСменыВПутевомЛисте.Водитель, | ВводПутевогоЛистаСменыВПутевомЛисте.Маршрут, | ВводПутевогоЛистаСменыВПутевомЛисте.График |ИЗ | Документ.ВводПутевогоЛиста.СменыВПутевомЛисте КАК ВводПутевогоЛистаСменыВПутевомЛисте |ГДЕ | ВводПутевогоЛистаСменыВПутевомЛисте.Ссылка.Дата МЕЖДУ &НачалоПериода И &ОкончаниеПериода | И ВводПутевогоЛистаСменыВПутевомЛисте.Кондуктор = &Кондуктор | И ВводПутевогоЛистаСменыВПутевомЛисте.Ссылка.СтадияОбработки = ЗНАЧЕНИЕ(Перечисление.СтадииОбработкиПутевогоЛиста.Выдан) | |УПОРЯДОЧИТЬ ПО | ВводПутевогоЛистаСменыВПутевомЛисте.НомерСмены"; Запрос.УстановитьПараметр("НачалоПериода", НачалоДня(РабочаяДата)); Запрос.УстановитьПараметр("ОкончаниеПериода", КонецДня(РабочаяДата)); Запрос.УстановитьПараметр("Кондуктор", Кондуктор); РезультатЗапроса = Запрос.Выполнить();  | 
|||
| 
    1
    
        Fragster    
     гуру 
    03.07.14 
            ✎
    16:02 
 | 
         
        сначала отбери все документы, а потом уже к ним присоедини отбор по кондруктору во внутреннем соединении. кстати плохо работать с документами, тем более без проверки на проведенность. правильно писать нужные данные в регистр и делать запрос к нему напрямую.     
         | 
|||
| 
    2
    
        Steynvor    
     03.07.14 
            ✎
    16:03 
 | 
         
        Я только недавно начал работать с запросами 1С, поэтому можно объяснение как для чайника?     
         | 
|||
| 
    3
    
        Dionisious    
     03.07.14 
            ✎
    16:03 
 | 
         
        Переиндексация спасет. Ну или переход на 8.3.     
         | 
|||
| 
    4
    
        Dionisious    
     03.07.14 
            ✎
    16:04 
 | 
         
        База файловая?     
         | 
|||
| 
    5
    
        Steynvor    
     03.07.14 
            ✎
    16:05 
 | 
         
        Нет, не файловая     
         | 
|||
| 
    6
    
        anatoly    
     03.07.14 
            ✎
    16:05 
 | 
         
        база файловая или серверная?
 
        +1 к варианту (1)  | 
|||
| 
    7
    
        Steynvor    
     03.07.14 
            ✎
    16:06 
 | 
         
        (6) база серверная     
         | 
|||
| 
    8
    
        Fragster    
     гуру 
    03.07.14 
            ✎
    16:09 
 | 
         
        Выбрать Ссылка Поместить Доки Из Документ.ВводПутевогоЛиста Где Дата Между ... И СтадияОбработки = ... ;
 
        Выбрать * Из Доки Внутреннее соединение Документ.ВводПутевогоЛиста.СменыВПутевомЛисте КАК Смены По Доки.Ссылка = Смены.Ссылка И Смены.Кондуктор = &Кондуктор  | 
|||
| 
    9
    
        floody    
     03.07.14 
            ✎
    16:10 
 | 
         
        на SQL регламенты делаются?     
         | 
|||
| 
    10
    
        Steynvor    
     03.07.14 
            ✎
    16:10 
 | 
         
        (9) нет, я очень большой чайник (((     
         | 
|||
| 
    11
    
        Dionisious    
     03.07.14 
            ✎
    16:12 
 | 
         
        Тогда точно переиндексация и обновление статистики. И на поле Кондуктор индексирование поставь.     
         | 
|||
| 
    12
    
        Aloex    
     03.07.14 
            ✎
    16:13 
 | 
         
        Убери упорядочивание.     
         | 
|||
| 
    13
    
        Dionisious    
     03.07.14 
            ✎
    16:14 
 | 
         
        О упорядочивание - еще индексацию на поле НомерСмены.     
         | 
|||
| 
    14
    
        Fragster    
     гуру 
    03.07.14 
            ✎
    16:15 
 | 
         
        (13) чего уж мелочиться - на всё индексы пусть ставит. а потом будет все тормозить     
         | 
|||
| 
    15
    
        H A D G E H O G s    
     03.07.14 
            ✎
    16:15 
 | 
         
        (11) "И на поле Кондуктор индексирование поставь."
 
        Зачем?  | 
|||
| 
    16
    
        H A D G E H O G s    
     03.07.14 
            ✎
    16:16 
 | 
         
        (13) Зачем?     
         | 
|||
| 
    17
    
        Fragster    
     гуру 
    03.07.14 
            ✎
    16:16 
 | 
         
        (16) недостаточно индексов, нужно больше индексов (это все голосом террановской тетки из старкрафта)     
         | 
|||
| 
    18
    
        H A D G E H O G s    
     03.07.14 
            ✎
    16:16 
 | 
         
        Уровень грамотности 1Снегов зашкаливает. Тормозит - ставь индекс, хренли...     
         | 
|||
| 
    19
    
        acsent    
     03.07.14 
            ✎
    16:18 
 | 
         
        (18) как раз тут индекс очень даже в тему     
         | 
|||
| 
    20
    
        Steynvor    
     03.07.14 
            ✎
    16:19 
 | 
         
        (19) Как это написать?     
         | 
|||
| 
    21
    
        Fragster    
     гуру 
    03.07.14 
            ✎
    16:19 
 | 
         
        (19) а я бы на неактуальность статистики грешил, или еще чего-то. ведь запрос по логике должен в подобие (8) сам превратиться, только вот почему-то не превращается     
         | 
|||
| 
    22
    
        H A D G E H O G s    
     03.07.14 
            ✎
    16:21 
 | 
         
        (19) Этот индекс войдет в состав кластерного индекса?     
         | 
|||
| 
    23
    
        acsent    
     03.07.14 
            ✎
    16:23 
 | 
         
        (22) нет, а почему должен то?     
         | 
|||
| 
    24
    
        H A D G E H O G s    
     03.07.14 
            ✎
    16:23 
 | 
         
        (19) Для табличной части есть кластерный индекс по ссылке и номеру строки. Войдет ли в него поле "Кондуктор" или будет создан отдельный некластерный индекс, который, скорее всего, будет "хуже" кластерного и никогда не используется.     
         | 
|||
| 
    25
    
        Dionisious    
     03.07.14 
            ✎
    16:24 
 | 
         
        Собственно я и писал сначала индексирование, обновление статистики, потом если не поможет попробовать индексы на поля отбора и упорядочивания.     
         | 
|||
| 
    26
    
        H A D G E H O G s    
     03.07.14 
            ✎
    16:24 
 | 
         
        (23) В тех книге эксперта ничего нет про табличные части объектов, вот я и спрашиваю, а проверять - лениво.     
         | 
|||
| 
    27
    
        acsent    
     03.07.14 
            ✎
    16:24 
 | 
         
        (24) в данной задаче будет всегда использоваться     
         | 
|||
| 
    28
    
        acsent    
     03.07.14 
            ✎
    16:25 
 | 
         
        а индекс по ссылке в запросе (0) как раз и не используется     
         | 
|||
| 
    29
    
        H A D G E H O G s    
     03.07.14 
            ✎
    16:25 
 | 
         
        (27) Там left join по ссылке с основной таблицей.     
         | 
|||
| 
    30
    
        H A D G E H O G s    
     03.07.14 
            ✎
    16:32 
 | 
         
        (28) Чей-то? Вообще, конечно, зависит от периода.
 
        Попадет в период мало документов - селективность будет достаточна и будет табличная часть отбираться по кластерному индексу (indexseek), будет много документов - эээээ, - хз - indexseek по "Кондуктор" + keylookup ?  | 
|||
| 
    31
    
        H A D G E H O G s    
     03.07.14 
            ✎
    16:33 
 | 
         
        Запутался.     
         | 
|||
| 
    32
    
        acsent    
     03.07.14 
            ✎
    16:33 
 | 
         
        (29) по ссылке от основной таблицы, а не от таблицы тч     
         | 
|||
| 
    33
    
        acsent    
     03.07.14 
            ✎
    16:34 
 | 
         
        Если бы внутренне было соединение, тогда сиквел бы выбрал сам какая таблица основная. а тут левое.
 
        Поэтому тэйбл скан + лукап  | 
|||
| 
    34
    
        H A D G E H O G s    
     03.07.14 
            ✎
    16:35 
 | 
         
        (33) Проверишь?     
         | 
|||
| 
    35
    
        Fragster    
     гуру 
    03.07.14 
            ✎
    16:35 
 | 
         
        началось гадание, а (8) решило все проблемы...     
         | 
|||
| 
    36
    
        Fragster    
     гуру 
    03.07.14 
            ✎
    16:35 
 | 
         
        (35)+ хотя и его можно улучшить, сделав сразу внутреннее без временной таблицы     
         | 
|||
| 
    37
    
        acsent    
     03.07.14 
            ✎
    16:39 
 | 
         
        (34) А что проверять. И так все понятно.
 
        Фрагстер прав. Нужно ручками развернуть соединение и сделать внутреннее  | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |