|   |   | 
| 
 | Оптимизация запроса | ☑ | ||
|---|---|---|---|---|
| 0
    
        FFrr1C 08.12.22✎ 22:15 | 
        Есть простейший запрос для УТ 11
 ВЫБРАТЬ ДополнительныеСведения.Объект.Ссылка КАК ССылка, ДополнительныеСведения.Свойство КАК Свойство, ДополнительныеСведения.Значение КАК Значение ИЗ РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения ГДЕ ДополнительныеСведения.Объект.Ссылка В (ВЫБРАТЬ РАЗЛИЧНЫЕ ПоручениеЭкспедиторуОснования.Основание.Ссылка КАК Ссылка ИЗ Документ.ПоручениеЭкспедитору.Основания КАК ПоручениеЭкспедиторуОснования ГДЕ ПоручениеЭкспедиторуОснования.Ссылка = &Ссылка) уходит в стопор, что не так делаю парни? | |||
| 1
    
        Волшебник 08.12.22✎ 22:18 | 
        не надо .Ссылка     | |||
| 2
    
        FFrr1C 08.12.22✎ 22:19 | 
        там реализации основания для поручения экспедитору ссылки, а реализации имеют максимум по одному доп сведению     | |||
| 3
    
        FFrr1C 08.12.22✎ 22:20 | 
        в начале?     | |||
| 4
    
        Ryzeman 08.12.22✎ 22:21 | 
        Всё.
 ВЫБРАТЬ РАЗЛИЧНЫЕ ПоручениеЭкспедиторуОснования.Основание КАК Ссылка ПОМЕСТИТЬ ВТ_Основания Документ.ПоручениеЭкспедитору.Основания КАК ПоручениеЭкспедиторуОснования ГДЕ ПоручениеЭкспедиторуОснования.Ссылка = &Ссылка; //////////////////////////////////////////////// ВЫБРАТЬ ВТ_Основания.Ссылка КАК Ссылка ДополнительныеСведения.Свойство КАК Свойство, ДополнительныеСведения.Значение КАК Значение ИЗ ВТ_Основания КАК ВТ_Основания ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения ПО ДополнительныеСведения.Объект = ВТ_Основания.Ссылка Попробуй и кайфани | |||
| 5
    
        Ryzeman 08.12.22✎ 22:22 | 
        Если у тебя заполнение допссведений не принудительное, то вместо внутреннего соединения сделай левое и обработай правильно NULL     | |||
| 6
    
        Ryzeman 08.12.22✎ 22:23 | 
        ВЫБРАТЬ РАЗЛИЧНЫЕ
 ПоручениеЭкспедитору.Основание КАК Ссылка ПОМЕСТИТЬ ВТ_Основания ИЗ Документ.ПоручениеЭкспедитору КАК ПоручениеЭкспедитору ГДЕ ПоручениеЭкспедитору.Основание = &Ссылка; Просмотрел первый блок) | |||
| 7
    
        FFrr1C 08.12.22✎ 22:24 | 
        Я понял, спасибо,но просто .ссылку убрал и 0,012с выполнение!     | |||
| 8
    
        Ryzeman 08.12.22✎ 22:24 | 
        Ну и что бы вообще классно работало - проверь есть ли индекс на основаниях. Можешь построить средствами СУБД если умеешь.     | |||
| 9
    
        FFrr1C 08.12.22✎ 22:26 | 
        Индекса нет, но это не железный повод уходить в стопорт
 в чем прикол не понятно.. в чем разница ПоручениеЭкспедитору.Основание и ПоручениеЭкспедитору.Основание.Ссылка? | |||
| 10
    
        vicof 08.12.22✎ 22:28 | 
        (9) Посмотри выполняемые запросы на sql-сервере и посмотри разницу     | |||
| 11
    
        Ryzeman 08.12.22✎ 22:28 | 
        (9) Посмотри план запроса. Когда ты делаешь ссылка.ссылка внутренним (если не левым) привязываются все таблицы которые там могут быть в первой ссылке.     | |||
| 12
    
        FFrr1C 08.12.22✎ 22:33 | 
        а конкретно "ссылка.ссылка внутренним (если не левым) привязываются все таблицы" - это конкретно где в исходном запросе получается неправильно?     | |||
| 13
    
        FFrr1C 08.12.22✎ 22:33 | 
        там соединений нет     | |||
| 14
    
        vicof 08.12.22✎ 22:34 | 
        (13) ну-ну.     | |||
| 15
    
        FFrr1C 08.12.22✎ 22:35 | 
        Понял вас! соединения в скуле если составнойТип.Ссылка,
 Спасибо! | |||
| 16
    
        FFrr1C 08.12.22✎ 22:37 | 
        "Если в запросе используется получение значения через точку от поля составного ссылочного типа, то при выполнении этого запроса будет выполняться соединение со всеми таблицами объектов, входящими в этот составной тип. В результате SQL текст запроса чрезвычайно усложняется, и при его выполнении оптимизатор СУБД может выбрать неоптимальный план. Это может привести к серьезным проблемам производительности и даже к неработоспособности запроса в отдельных случаях."     | |||
| 17
    
        magicSan 09.12.22✎ 07:11 | 
        различные работает дольше чем группировка     | |||
| 18
    
        mikecool 09.12.22✎ 10:01 | 
        (17) да ну? чем докажешь?     | |||
| 19
    
        arsik гуру 09.12.22✎ 10:21 | 
        +(18) Я тоже всегда считал, что группировка тяжелее     | |||
| 20
    
        Курцвейл 09.12.22✎ 10:26 | 
        (17) Это абсолютно одинаковые инструкции для сервера.     | |||
| 21
    
        magicSan 09.12.22✎ 10:43 | 
        (18) берешь запрос с миллионом записей и смотришь в консоли
 (19) см. выше (20) disitinct и group by ? | |||
| 22
    
        Курцвейл 09.12.22✎ 14:07 | 
        (21) Да     | |||
| 23
    
        Курцвейл 09.12.22✎ 14:11 | 
        (21) Речь конечно о ситуации когда результат  disitinct или group by не будут отличаться. Оптимизатор запроса понимает что ему требуется и по сути будет генерировать и там и там одинаковый план запроса.     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |