|   |   | 
| 
 | Неопределено, долго работает запрос | ☑ | ||
|---|---|---|---|---|
| 0
    
        AntonU 29.08.19✎ 12:50 | 
        Запрос=Новый Запрос;
 Запрос.Текст="ВЫБРАТЬ | ПриходнаяНакладная.Ссылка |ИЗ | Документ.ПриходнаяНакладная КАК ПриходнаяНакладная |ГДЕ | ПриходнаяНакладная.Дата МЕЖДУ &Дата1 И &Дата2 | И НЕ ПриходнаяНакладная.ПометкаУдаления | И ПриходнаяНакладная.ДокументДоп = Неопределено"; Долго работает запрос, можно ли его ускорить? Проблема в "Неопределено" ? ДокументДоп - составного типа | |||
| 1
    
        RomanYS 29.08.19✎ 12:52 | 
        долго это сколько?
 С условием и без | |||
| 2
    
        sqr4 29.08.19✎ 12:53 | 
        (0) и тип документДоп скажи     | |||
| 3
    
        AntonU 29.08.19✎ 12:56 | 
        (0) ДокументДоп - имеет составной тип: 
 ДокументСсылка.Документ1, ДокументСсылка.Документ2, ДокументСсылка.Документ3, ДокументСсылка.Документ4, ДокументСсылка.Документ5 | |||
| 4
    
        AntonU 29.08.19✎ 13:13 | 
        (1) Долго - это 97% от работы всей процедуры.
 Если заменить И ПриходнаяНакладная.ДокументДоп = Неопределено На И ПриходнаяНакладная.ДокументДоп Есть NULL То работает очень быстро, но неправильно | |||
| 5
    
        Timon1405 29.08.19✎ 13:18 | 
        переписать на объединение всех типов не вариант?     | |||
| 6
    
        GedKo 29.08.19✎ 13:20 | 
        а если будет не неопределено, а пустая ссылка?
 зы. просто добавить реквизит булево ЗаполненДопДокумент сложно? или регистр ПриходныеНакладныеБезДопДокументов? | |||
| 7
    
        RomanYS 29.08.19✎ 13:23 | 
        (4) тогда уж 
 ПриходнаяНакладная.ДокументДоп.Ссылка Есть NULL но это как раз должно быть очень медленно 97% - это ни о чём не говорит, если в остальной части нет обращений к данным | |||
| 8
    
        karabas11 29.08.19✎ 13:25 | 
        ДокументДоп индексирвано?     | |||
| 9
    
        hhhh 29.08.19✎ 13:28 | 
        (4) Запрос.Текст="ВЫБРАТЬ
 | ПриходнаяНакладная.Ссылка, | ПриходнаяНакладная.ПометкаУдаления, | ПриходнаяНакладная.ДокументДоп ПОМЕСТИТЬ ПрихНакладная |ИЗ | Документ.ПриходнаяНакладная КАК ПриходнаяНакладная |ГДЕ | ПриходнаяНакладная.Дата МЕЖДУ &Дата1 И &Дата2 |; |ВЫБРАТЬ | ПрихНакладная.Ссылка |ИЗ | ПрихНакладная КАК ПрихНакладная |ГДЕ | НЕ ПрихНакладная.ПометкаУдаления | И ПрихНакладная.ДокументДоп = Неопределено"; так попробуйте | |||
| 10
    
        Йохохо 29.08.19✎ 13:31 | 
        + (9) или так, интересно
 Запрос.Текст="ВЫБРАТЬ | ПриходнаяНакладная.Ссылка |ИЗ | Документ.ПриходнаяНакладная КАК ПриходнаяНакладная |ГДЕ | ПриходнаяНакладная.Дата МЕЖДУ &Дата1 И &Дата2 | И НЕ ПриходнаяНакладная.ПометкаУдаления | СГРУППИРОВАТЬ ПО ПриходнаяНакладная.Ссылка | ИМЕЮЩИЕ | ПриходнаяНакладная.ДокументДоп = Неопределено" | |||
| 11
    
        hhhh 29.08.19✎ 13:35 | 
        (4) но обычно так и есть. запрос всегда занимает 97% от процедуры. Если там 2 запроса, то примерно по 48% каждый, и так далее.     | |||
| 12
    
        RomanYS 29.08.19✎ 13:44 | 
        (4) озвучь уже время. Хотя бы порядок - секунды- десятки секунд - минуты     | |||
| 13
    
        FIXXXL 29.08.19✎ 13:49 | 
        (12) и нет ли проброса данных сервер-клиент? ну там ТЧ обработки какой-нибудь...     | |||
| 14
    
        dezss 29.08.19✎ 14:07 | 
        (4) А в чем неправильность?     | |||
| 15
    
        RomanYS 29.08.19✎ 14:14 | 
        (14) очевидно результат пустой.     | |||
| 16
    
        palsergeich 29.08.19✎ 14:22 | 
        (0) Не следует делать условия на поля составных типов.     | |||
| 17
    
        palsergeich 29.08.19✎ 14:23 | 
        (16) Ой, я ошипся, это не тот случай.     | |||
| 18
    
        palsergeich 29.08.19✎ 14:25 | 
        Конкретно в этом случае скорее всего непопадание в индекс и скан таблицы или ведро нестед лупсов, там как оптимизатор решит.
 Нет покрывающего индекса на поля Ссылка Дата ПометкаУдаления ДокументДоп | |||
| 19
    
        Timon1405 29.08.19✎ 14:27 | 
        (18) а если бы был, он бы помог в случае
 | И НЕ ПриходнаяНакладная.ПометкаУдаления ? | |||
| 20
    
        dezss 29.08.19✎ 14:36 | 
        (15) Ну это не совсем очевидно)))
 А если сделать так? ВЫБРАТЬ ПриходнаяНакладная.Ссылка, ТипЗначения(ПриходнаяНакладная.ДокументДоп) Как Тип Поместить ВТ ИЗ Документ.ПриходнаяНакладная КАК ПриходнаяНакладная ГДЕ ПриходнаяНакладная.Дата МЕЖДУ &Дата1 И &Дата2 И НЕ ПриходнаяНакладная.ПометкаУдаления ИНДЕКСИРОВАТЬ ПО Тип Ну а следующим запросом уже выбрать необходимое? | |||
| 21
    
        НЕА123 29.08.19✎ 14:40 | 
        (0)
 условие сделать первым в ГДЕ ПриходнаяНакладная.ДокументДоп = Неопределено | |||
| 22
    
        dezss 29.08.19✎ 14:40 | 
        (21) на порядок условий вообще пофиг...     | |||
| 23
    
        dezss 29.08.19✎ 14:43 | 
        (20) блин....по типу нельзяиндексировать     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |