|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
Чем неоптимален данный запрос? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2015, 12:00 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
в 1С не принято строить отчёты по документам, поэтому в любой типовой будет Рг Продажи/ПродажиСебестоимость, к которому и стоит обратится если речь о самописке, то нужно этот оборотный Рг создать ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2015, 12:28 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
Регистры это понятно. А если сам запрос посмотреть, без учета регистров. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2015, 12:55 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
1. Сначала выбрать документы согласно условию. (поля ссылка и договор) 2. Левое соединение с справочником договоры и получить вид договора. 3. Потом соединение с табличной частью и группировка по номенклатуре. ps Такой запрос не нужно оптимизировать. На скорую руку +- 5 секунд не играет никакой роли. psps 2 точки и больше - нежелательно применять в запросах. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2015, 21:13 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
Программист 1с, То что вы написали вряд ли будет оптимизацией с большой долей вероятности, то что вы написали и то что написал автор топика даст одинаковый запрос в СУБД. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.08.2015, 22:41 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
Mad_HeadПрограммист 1с, То что вы написали вряд ли будет оптимизацией с большой долей вероятности, то что вы написали и то что написал автор топика даст одинаковый запрос в СУБД.Да ну? Тогда расскажите про работу оптимизатора во всех СУБД, с которыми работает 1с. А также не забудьте рассказать про файловый вариант, что творится в нем. ps Вы беретесь предсказывать планы запроса в скуле? Или признаете что на практике скуль может любой запрос вывернуть как ему хочется? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2015, 08:28 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
Программист 1с, Учите мат. часть! Такое понятие как разыменование полей знаете? И что оно значит? Обращение к поле через точку плохо только для СОСТАВНОГО ТИПА!! Все остальное - это "нормально" для 1С! ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2015, 09:14 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
sevdo_toolЧем неоптимален данный запрос? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
запрос как запрос... может имеет смысл рассмотреть его преобразования в джоин с временной таблицей (ради избавления от "неявного разыменования договора"), но это надо план выполнения смотреть может там цикл nest loop по целой пачке документов... без него (плана) разговор беспредметный... обычный запрос из конструктора которых и в типовых овердокуа ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2015, 10:20 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
DoctorRozaПрограммист 1с, Учите мат. часть! Такое понятие как разыменование полей знаете? И что оно значит? Обращение к поле через точку плохо только для СОСТАВНОГО ТИПА!! Все остальное - это "нормально" для 1С!Ух ты. Откуда подобную глупость взяли? Ссылочку пожалуйста на официальный ответ 1с. (А заодно рекомендую сходить на базовые курсы 1с и узнать за какое количество точек в запросе снижают оценку.) ps То что у Вас есть понимание что происходит при соединении с составным полем, не значит что Вы знаете что происходит в других случаях. Приведите тогда план запроса, или сразу признаетесь что экстрасенс? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2015, 10:43 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
DoctorRozaПрограммист 1с, Учите мат. часть! Такое понятие как разыменование полей знаете? И что оно значит? Обращение к поле через точку плохо только для СОСТАВНОГО ТИПА!! Все остальное - это "нормально" для 1С!Специально для Вас пример Ваших незнаний (Можно рассказывать и дальше что 10 точек это нормально): ВЫБРАТЬ Реализация.Номенклатура ИЗ Документ.ПродажаТоваров.СписокТоваров КАК Реализация ГДЕ Реализация.Ссылка.Проведен И Реализация.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаОкон И Реализация.Ссылка.Договор.ВидДоговора.УсловияДоговора.ОсновныеУсловия.ВидОтстрочки = &ВидОтсрочки СГРУППИРОВАТЬ ПО Реализация.Номенклатура ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2015, 10:48 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
По-моему, единственные большие множества в этом соединении - это реализации и договоры. Возможно, имеет смысл перед соединением их ограничить. Остальное оптимизировать не стоит. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2015, 11:03 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
Программист 1сDoctorRozaПрограммист 1с, Учите мат. часть! Такое понятие как разыменование полей знаете? И что оно значит? Обращение к поле через точку плохо только для СОСТАВНОГО ТИПА!! Все остальное - это "нормально" для 1С!Специально для Вас пример Ваших незнаний (Можно рассказывать и дальше что 10 точек это нормально): ВЫБРАТЬ Реализация.Номенклатура ИЗ Документ.ПродажаТоваров.СписокТоваров КАК Реализация ГДЕ Реализация.Ссылка.Проведен И Реализация.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаОкон И Реализация.Ссылка.Договор.ВидДоговора.УсловияДоговора.ОсновныеУсловия.ВидОтстрочки = &ВидОтсрочки СГРУППИРОВАТЬ ПО Реализация.Номенклатура Еще раз! Обращение через точку - это механизм, узаконенный самой 1С. Называется РАЗЫМЕНОВАНИЕ ПОЛЕЙ! Он упрощает написание запросов, при этом вся аналитическая работа по созданию плана запроса падает на СУБД. Когда идет обращение к полю ЕДИНИЧНОГО типа, НИЧЕГО страшного в плане запроса SQL НЕ ПРОИСХОДИТ! Да, добавляются левые соединения в запрос T-SQL и ЧТО С ТОГО? Из логики задачи, для "оптимальности", Вы просто перепишете запрос 1С так, как он сейчас транслируется из сервера 1С (с левыми соединениями и т.п.) и НЕ БОЛЕЕ ТОГО! Обращение через точку плохо, когда идет обращение к СОСТАВНОМУ ТИПУ ДАННЫХ: // Регистратор.Ссылка.Ссылка - вот это зло! (да, такое я встречал) // Многократное обращение через точку - соглашусь с Вами, это не комильфо, ошибка архитектуры, но не критично! Ну будет 10 левых соединений и что? Это не та нагрузка для системы! А вот когда составной тип, там уже уже веселее! :) Автору надо это понять и .. познакомиться с трассировкой и планом запроса, а то так и будет .. "ведра подавать"! :) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2015, 12:14 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
Программист 1сMad_HeadПрограммист 1с, То что вы написали вряд ли будет оптимизацией с большой долей вероятности, то что вы написали и то что написал автор топика даст одинаковый запрос в СУБД.Да ну? Тогда расскажите про работу оптимизатора во всех СУБД, с которыми работает 1с. А также не забудьте рассказать про файловый вариант, что творится в нем. ps Вы беретесь предсказывать планы запроса в скуле? Или признаете что на практике скуль может любой запрос вывернуть как ему хочется? Смешались люди и кони. Я берусь предсказывать трансляцию запроса из 1с в скуль, и не в коем случае план запроса так как для этого нет никакой инфы. Обращение через точку даст join. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2015, 12:23 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
DoctorRozaно не критично! Ну будет 10 левых соединений и что? Это не та нагрузка для системы! без плана выполнения это пустой разговор ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2015, 12:32 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
взял попкорн..посижу посмотрю что дальше будет. По мне вопрос скорости.. если оптимизация не важна то можно писать с точками... Было раз - сказли оптимизировать отчет.. для 3 потратил чтоб точки убрать только - прирост был пол секунды (в цикле чтоб по точкам не бегать). Оказалось что что самое крупное подтесал то и хватило..а это уже мазохизмом было. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2015, 13:23 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
sevdo_toolЧем неоптимален данный запрос? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Все что нужно - проверить, чтобы поле Договор было индексировано. В остальном запрос нормальный. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2015, 14:46 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
autsaidersevdo_toolЧем неоптимален данный запрос? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Все что нужно - проверить, чтобы поле Договор было индексировано. В остальном запрос нормальный. Невнимательно посмотрел запрос - индексирование поля Дововор не обязательно, отбора по нему нет. Запрос в норме ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2015, 14:49 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
DoctorRozaМногократное обращение через точку - соглашусь с Вами, это не комильфо, ошибка архитектуры, но не критично! Ну будет 10 левых соединений и что? Это не та нагрузка для системы! А вот когда составной тип, там уже уже веселее! :) Полностью согласен ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2015, 14:50 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
DoctorRozaЕще раз! Обращение через точку - это механизм, узаконенный самой 1С. Называется РАЗЫМЕНОВАНИЕ ПОЛЕЙ! Он упрощает написание запросов, при этом вся аналитическая работа по созданию плана запроса падает на СУБД. Когда идет обращение к полю ЕДИНИЧНОГО типа, НИЧЕГО страшного в плане запроса SQL НЕ ПРОИСХОДИТ! Да, добавляются левые соединения в запрос T-SQL и ЧТО С ТОГО? Из логики задачи, для "оптимальности", Вы просто перепишете запрос 1С так, как он сейчас транслируется из сервера 1С (с левыми соединениями и т.п.) и НЕ БОЛЕЕ ТОГО! Обращение через точку плохо, когда идет обращение к СОСТАВНОМУ ТИПУ ДАННЫХ: // Регистратор.Ссылка.Ссылка - вот это зло! (да, такое я встречал) // Многократное обращение через точку - соглашусь с Вами, это не комильфо, ошибка архитектуры, но не критично! Ну будет 10 левых соединений и что? Это не та нагрузка для системы! А вот когда составной тип, там уже уже веселее! :) Автору надо это понять и .. познакомиться с трассировкой и планом запроса, а то так и будет .. "ведра подавать"! :)Еще раз прошу официальную ссылочку что разрешено 10 точек. А также прошу ссылочку с экзамена 1с - почему там снижают оценку за количество точек. Или мы считаем это просто Вашим частным и неправильным мнением? Специально для Вас: встречал запросы (кстати на учебе в 1с приводили аналогичные примеры) с несколькими точками - выполняющиеся минуты. После оптимизации - доли секунды. Это некритично? ps Вашу позиция: набросаю ***вна - а там пусть скуль сам разберется - не выдерживает никакой критики. Во первых есть другие варианты работы базы (а вы про них упорно забываете), во вторых умение думать про все компоненты работы системы отличает специалиста от дилетанта. (Зальем в бак не 92 а 76 - и так поедет). ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2015, 15:36 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
autsaiderautsaiderпропущено... Все что нужно - проверить, чтобы поле Договор было индексировано. В остальном запрос нормальный. Невнимательно посмотрел запрос - индексирование поля Дововор не обязательно, отбора по нему нет. Запрос в нормеА план запроса? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2015, 15:42 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
Программист 1с, Автору кто-то напел, или не напел, в уши, про неоптимальность его запроса! Если начать переписывать запрос, убирать обращения через точки, то мы получим такой же запрос, что и сейчас дает План запроса на T-SQL (конечно, не углубляясь в задачу). Ну так почему мы говорим про неоптимальность, если получаем те же яйца только с боку? Этот запрос оптимальный? ВЫБРАТЬ Номенклатура.Ссылка ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ Номенклатура.ВидНоменклатуры.ТипНоменклатуры = &ТипНоменклатуры А этот? ВЫБРАТЬ Номенклатура.Ссылка ИЗ Справочник.Номенклатура КАК Номенклатура ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ВидыНоменклатуры КАК ВидыНоменклатуры ПО Номенклатура.ВидНоменклатуры = ВидыНоменклатуры.Ссылка ГДЕ ВидыНоменклатуры.ТипНоменклатуры = &ТипНоменклатуры А есть ли разница? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2015, 16:58 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
DoctorRozaПрограммист 1с, Автору кто-то напел, или не напел, в уши, про неоптимальность его запроса! Если начать переписывать запрос, убирать обращения через точки, то мы получим такой же запрос, что и сейчас дает План запроса на T-SQL (конечно, не углубляясь в задачу). Ну так почему мы говорим про неоптимальность, если получаем те же яйца только с боку?1. Еще раз - вы гадалка предсказываете план запроса? Абсолютная уверенность? Да ну? 2. Не уводите разговор в сторону (написать простейший запрос любой может). Напишите запрос с кучей точек и потом гадайте во что он превратится. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2015, 17:30 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
Программист 1с, 1. Я знаю во что превратиться запрос Автора в Плане запроса! Он будет подобием того, что я написал выше. Проверяйте в Profiler'е если не верите! 2. Мне не о чем говорить с Вами говорить, извините. Я от собеседника всегда ожидаю каких-то фактов. Вы же зарядили про 10 точек и все тут! Автор! Ваш запрос оптимален в допущениях самой 1С. Изучите внимательней Разыменование полей. В запросе лучше не использовать обращение через точку, но это допустимо! Много обращений через точку - это плохо! Помните, что обращение через точку к полю составного типа - это МЕГА плохо! Рекомендую изучить работу с трассировками и планами запроса в Profiler. Стройте запросы и Вас все станет понятно! Пока, как я вижу, для Вас это туман! Ничего, разберетесь! Успехов! Закрывайте тему! :) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.08.2015, 17:59 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
DoctorRoza1. Я знаю во что превратиться запрос Автора в Плане запроса! Он будет подобием того, что я написал выше. Проверяйте в Profiler'е если не верите!Пожалуйста покажите план запроса из sql, оракл, постгрее, и в файловом варианте. А так как Вы это сделать не можете - очевидно признание Вашей лжи и некомпетентности в данном пункте.DoctorRozaПрограммист 1с, Учите мат. часть! Такое понятие как разыменование полей знаете? И что оно значит? Обращение к поле через точку плохо только для СОСТАВНОГО ТИПА!! Все остальное - это "нормально" для 1С!DoctorRozaМного обращений через точку - это плохо!Ух ты оказывается всё-таки плохо обращаться через много точек. А до этого говорили обратное... Надеялся на длинный спор, а Вы так быстро слились... ps В следующий раз когда будете указывать собеседнику указание учить мат часть, сначала неплохо бы бревно в своем глазу заметить... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2015, 11:25 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
Программист 1сDoctorRoza1. Я знаю во что превратиться запрос Автора в Плане запроса! Он будет подобием того, что я написал выше. Проверяйте в Profiler'е если не верите!Пожалуйста покажите план запроса из sql, оракл, постгрее, и в файловом варианте. А так как Вы это сделать не можете - очевидно признание Вашей лжи и некомпетентности в данном пункте.DoctorRozaПрограммист 1с, Учите мат. часть! Такое понятие как разыменование полей знаете? И что оно значит? Обращение к поле через точку плохо только для СОСТАВНОГО ТИПА!! Все остальное - это "нормально" для 1С!DoctorRozaМного обращений через точку - это плохо!Ух ты оказывается всё-таки плохо обращаться через много точек. А до этого говорили обратное... Надеялся на длинный спор, а Вы так быстро слились... ps В следующий раз когда будете указывать собеседнику указание учить мат часть, сначала неплохо бы бревно в своем глазу заметить... Говорил что одна точка это не плохо и заворачиваться ради оптимизации не стоит ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2015, 11:40 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
Программист 1с, Этого аргумент на экзамене? Основные причины неоптимальной работы запросов, диагностируемые на уровне кода конфигурации и структуры метаданных: соединения с подзапросами; соединения с виртуальными таблицами; несоответствие индексов и условий запроса; использование логического ИЛИ в условиях; использование подзапросов в условии соединения; получение данных через точку от полей составного типа; фильтрация виртуальных таблиц без использования параметров. P.S. Подчеркну, что в шестым упомянуто разыменовывание полей только СОСТАВНОГО типа. P.P.S. Допускаю, что автор отсортировал не по неоптимальности, а по длине наименования (для лучшего визуального восприятия). ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2015, 11:51 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
ZerroГоворил что одна точка это не плохо и заворачиваться ради оптимизации не стоитПрограммист 1сpsps 2 точки и больше - нежелательно применять в запросах.Может всетаки 2? (А на самом деле при 3 точках как раз и наблюдал падение скорости запроса в десятки раз) А автору дал ответ исходя из рекомендаций курсов 1с, где скорее всего ему и дали такую задачу. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2015, 11:54 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
AHDP, ты сам заметишь слово в цитате (и оно отличается от слова "все")? https://its.1c.ru/db/metod8dev#content:5842:hdoc AHDPТипичные причины неоптимальной работы запросов и методы оптимизации.Будешь спорить что куча точек для несоставного типа, не является причиной неоптимальной работы запроса? ps Визуально согласен, естественно выглядит лучше. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2015, 12:19 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
Профайлер доступен только для клиент-серверного варианта работы насколько я понимаю? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2015, 16:10 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
sevdo_toolПрофайлер доступен только для клиент-серверного варианта работы насколько я понимаю? профайлер в постгри тоже недоступен за наличием отсутствия пропитанных шпал! ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2015, 17:13 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
Программист 1с , Спрашивал ссылку - я её предоставил , дабы пресечь срач и взаимные оскорбления. А по теме неоптимальности запроса только два однозначных замечания : 1) уточнить, для чего будут использоваться его результаты и, очень вероятно, что надо будет получать не ссылку , а наименование номенклатуры . Мы же не хотим получить на каждую строку неявный запрос к БД при выводе отчета ; 2) заменить группировку на Различные . Остальные рекомендации обсуждать некорректно, т.к. они зависят не только от данных в БД , но и от параметров запроса . Согласен с Shuhard , что документами пользоваться не стоит, но не согласен с приведенной аргументацией. С точки зрения пользователя операция продажи может быть отображена и другим видом документов (корректировка, возврат...). И даже если пользователь просит показать ему только реализацию, то неплохо ему подсказать , что нужно смотреть и иные данные. С точки зрения программиста - записи в регистре уже удовлетворяют одному условию (не нужно проверять просвещённость) и можно надеяться на попадание в индекс большего числа необходимых полей. В идеале запрос сведется к сканированию индекса регистра и чтению из 2х таблиц (договоры, номенклатура), против сканирования индекса таблицы договоры с последующим чтением из неё и чтением из 3х таблиц (товары, договоры, номенклатура). Итого выкинули одно условие и одну таблицу . Программист 1с , 1С не поддерживает хинты (мы же за MS SQL говорим), по этому оптимизатор будет в любом случае разгребать запрос, как бы он не был заковыристо написан. autsaider , если будет индекс Проведен, Дата, Договор - то . Но за индексацию "лишних" данных надо карать не менее строго, чем за кривые запросы. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2015, 08:37 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
AHDP 1С не поддерживает хинты поддерживает как минимум два nolock и updlock ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2015, 10:01 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
Последний выдох ГПЖ , Уточнение принимается, но к обсуждаемой теме не относиться. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2015, 12:27 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
AHDPУточнение принимается, но к обсуждаемой теме не относиться. имхо тема сдохла давно ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2015, 12:51 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
AHDP, я в отпуск уезжаю. Потом поспорим ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2015, 22:04 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
Программист 1с, мне кажется вы путаете текст запроса и план запроса. если с планом могут быть вопросы, то сам запрос, который придет в субд от 1с после преобразования в SQL - выглядит совершенно определенно, и это легко проверяется. Как уже сказали, точка для несоставных полей это просто левое соединение. и никакой разницы, сами вы это соединение опишете, или положитесь на запрос через точку - просто не существует. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2015, 23:06 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
автор AHDPА по теме неоптимальности запроса только два однозначных замечания: 1) уточнить, для чего будут использоваться его результаты Вообще эта задачку мне дали на проверку как тест: Оптимизация запроса В «1С:Управление торговлей» была реализована выгрузка списка проданных товаров во внешнюю сиситему. Со временем в базе было накоплено большое количество данных и выгрузка стала работать медленно. Замер времени выполнения показал, что основное время занимает выполнение следующего запроса: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Предложите вариант оптимизации запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2015, 08:51 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
sevdo_toolавтор AHDPА по теме неоптимальности запроса только два однозначных замечания: 1) уточнить, для чего будут использоваться его результаты Вообще эта задачку мне дали на проверку как тест: Оптимизация запроса В «1С:Управление торговлей» была реализована выгрузка списка проданных товаров во внешнюю сиситему. Со временем в базе было накоплено большое количество данных и выгрузка стала работать медленно. Замер времени выполнения показал, что основное время занимает выполнение следующего запроса: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Предложите вариант оптимизации запроса. регистр продаж (дата1 и дата 2 и док = реализация) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2015, 08:56 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
>Реализация.Ссылка.Проведен >И Реализация.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаОкон стоит поменять местами - будет попадание в индекс [ОРРХ | ОРНР1 +] Дата + Ссылка ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2015, 10:00 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
Последний выдох ГПЖстоит поменять местами - будет попадание в индекс [ОРРХ | ОРНР1 +] Дата + Ссылка Об этом поподробнее, пожалуйста. Неужели порядок следования в условии ГДЕ на что-то влияет? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2015, 11:50 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
sevdo_toolПоследний выдох ГПЖстоит поменять местами - будет попадание в индекс [ОРРХ | ОРНР1 +] Дата + Ссылка Об этом поподробнее, пожалуйста. Неужели порядок следования в условии ГДЕ на что-то влияет? не тут наверное наврал - коллега говорит что порядок в где не важен оптимизатор сам определит как лучше зацепиться за индекс ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2015, 12:19 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
javapeckerПрограммист 1с, мне кажется вы путаете текст запроса и план запроса. если с планом могут быть вопросы, то сам запрос, который придет в субд от 1с после преобразования в SQL - выглядит совершенно определенно, и это легко проверяется. Как уже сказали, точка для несоставных полей это просто левое соединение. и никакой разницы, сами вы это соединение опишете, или положитесь на запрос через точку - просто не существует.А в чем смысл разговора об запросе? Нам не важна производительность? Нам плевать какой мусор придет в sql? Поэтому разрешаем делать десять точек - ведь это просто левое соединение? Или мы должны сделать так чтобы план запроса был оптимальным и sql не ошибался? Соответственно и запрос в 1с должен выглядеть по другому? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2015, 14:21 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
Zerrosevdo_toolпропущено... Вообще эта задачку мне дали на проверку как тест: Оптимизация запроса В «1С:Управление торговлей» была реализована выгрузка списка проданных товаров во внешнюю сиситему. Со временем в базе было накоплено большое количество данных и выгрузка стала работать медленно. Замер времени выполнения показал, что основное время занимает выполнение следующего запроса: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Предложите вариант оптимизации запроса. регистр продаж (дата1 и дата 2 и док = реализация)Если так поставить задачу... То может надо к оборотному регистру продажи обращаться (за период, а проведен не проверяем это и так есть) и группировка по номенклатуре? Должно быть гораздо быстрее. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2015, 14:23 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
quot sevdo_tool, Удивите их ответом, что добавление при оптимизации запроса .Наименование запрос притормозит, но сильно ускорит формирование печатной формы. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.08.2015, 16:11 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
Программист 1сА в чем смысл разговора об запросе? Нам не важна производительность? Нам плевать какой мусор придет в sql? Поэтому разрешаем делать десять точек - ведь это просто левое соединение? Или мы должны сделать так чтобы план запроса был оптимальным и sql не ошибался? Соответственно и запрос в 1с должен выглядеть по другому? Поясняю - смысл в том что вы писали о том что точки плохи сами по себе, и предалгали заменить их левыми соединениями, делая вывод что это повлияет на план выполнения запроса. Но это не так, отсюда мой предыдущий вывод. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2015, 16:46 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
самая мякоть в запросе - это неявный джоин ТЧ с шапкой документа с наложением условий на реквизиты шапки (т.е. сначала сджойнит все со всем, только потом уже начнет фильтровать из этого месива) + суммирование ради получения distinct ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2015, 18:29 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
javapeckerПрограммист 1сА в чем смысл разговора об запросе? Нам не важна производительность? Нам плевать какой мусор придет в sql? Поэтому разрешаем делать десять точек - ведь это просто левое соединение? Или мы должны сделать так чтобы план запроса был оптимальным и sql не ошибался? Соответственно и запрос в 1с должен выглядеть по другому? Поясняю - смысл в том что вы писали о том что точки плохи сами по себе, и предалгали заменить их левыми соединениями, делая вывод что это повлияет на план выполнения запроса. Но это не так, отсюда мой предыдущий вывод.Угу. Тоесть конкретный пример с несколькими точками который увеличивал время работы в десятки раз, а после замены на простые блоки сильно ускорился является ошибкой? Надо оставлять запрос с многими точками. Такова Ваша позиция? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2015, 19:45 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
Программист 1сУгу. Тоесть конкретный пример с несколькими точками который увеличивал время работы в десятки раз, а после замены на простые блоки сильно ускорился является ошибкой? Надо оставлять запрос с многими точками. Такова Ваша позиция? Нет, не такая у меня позиция. У меня примерно такая - причины надо по возможности искать объективные, а не на основе предположений и догадок. Точки это не мистика, как они преобразуются в запросе - известно. Причиной тормозов с вашим запросом было то, что соединение, в которое преобразовывались точки - не подходило для вашего конкретного случая. Возможно из-за причины указанной выше - что соединения по точкам выполнялись раньше чем условия отбора в запросе. Но это не говорит о том что точки - зло. В общем я за то, чтобы понимать причины по которым выполняются те или иные действия. А то может получиться как в этой притче: АКТ ПЕРВЫЙ В доме супружеской пары. Жена весь день занималась приготовлением замечательного окорока для своего мужа, первого в жизни - окорока, а не мужа... Он (пробует). Превосходно. только зачем ты его обрезала? Она. Так всегда делают, когда запекают окорок. Он. Вовсе нет. Я много раз ел окорок, запеченный целиком. Она. Наверно, если его обрезать, получается вкуснее. Он. Что за чушь! Почему? Она (неуверенно). Моя мама так готовила... Он. Тогда пойдем к твоей маме. АКТ ВТОРОЙ В доме ее матери. Она. Мама, как правильно запечь окорок? М ать. Нужно замариновать его, обрезать и положить в печь. Он а (мужу). Вот видишь? Он. Сеньора, а зачем его нужно обрезать? Мать (неуверенно). Ну, знаете... Маринады... Стряпня... Моя мать всегда так делала! Он. Отлично, тогда идем к бабушке! АКТ ТРЕТИЙ В доме ее бабушки. Она. Бабуля, как правильно готовить запеченный окорок? Бабушка. Сначала я его как следует мариную, даю постоять часа три, потом обрезаю и кладу в печь. М ать (зятю). Вот видишь! Она (мужу). Вот видишь! Он (совершенно сбитый с толку). Позвольте, бабушка, но зачем же его обрезать? Бабушка. Боже милостивый, да затем, чтоб окорок в печи поместился. У меня печка такая тесная... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2015, 21:29 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
javapeckerНо это не говорит о том что точки - зло.Итак вернулись к началу. 10 точек подряд не является злом. Это нормально?javapeckerТочки это не мистика, как они преобразуются в запросе - известно.А в план запроса? ps Еще раз уточним - скидывать все в одну кучу и отправлять в sql это нормально? Потому что Вам точно известны все преобразования? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.08.2015, 23:29 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
авторТочки это не мистика, как они преобразуются в запросе - известно. А в план запроса? Программист 1с, вы занимаетесь софистикой. Я не утверждал что 10 точек это хорошо, нормально, или лушче, или хуже чем 10 левых соединений. Я утверждал что это одно и то же. А вы утверждали что точки ухудшают производительность запроса сами по себе, потому что так написано у 1С, и что можно судить о выполнении запроса с точками и без точек только изучая план запроса, котрый (уже не первый раз повторяю) здесь совершенно ни при чем, потому что точно известно как будет выглядеть запрос после преобразования точек в соединения. СУБД о существовании 1С не подозревает, ей все равно кто прислал запрос, и что с ним происходило до того как он к СУБД попал. Если тексты запросов с точками и без точек в итоге окажутся одинаковыми, то и план у них при прочих равных условиях будет одинаковый. Я даже не надеюсь что вы поверите на слово, поэтому просто проверьте любым доступным средством мониторинга запросов. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2015, 16:58 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
javapeckerавторТочки это не мистика, как они преобразуются в запросе - известно. А в план запроса? Программист 1с, вы занимаетесь софистикой. Я не утверждал что 10 точек это хорошо, нормально, или лушче, или хуже чем 10 левых соединений. Я утверждал что это одно и то же. А вы утверждали что точки ухудшают производительность запроса сами по себе, потому что так написано у 1С, и что можно судить о выполнении запроса с точками и без точек только изучая план запроса, котрый (уже не первый раз повторяю) здесь совершенно ни при чем, потому что точно известно как будет выглядеть запрос после преобразования точек в соединения. СУБД о существовании 1С не подозревает, ей все равно кто прислал запрос, и что с ним происходило до того как он к СУБД попал. Если тексты запросов с точками и без точек в итоге окажутся одинаковыми, то и план у них при прочих равных условиях будет одинаковый. Я даже не надеюсь что вы поверите на слово, поэтому просто проверьте любым доступным средством мониторинга запросов.Тоесть при 10 точках план запроса (и сам запрос) будет одинаков с планом запроса (и сам запрос) если его разбить на подзапросы естественно с левыми соединениями? Вы всегда когда не хотите отвечать на прямые вопросы, начинаете придумывать оправдания (софистика и тд)? ps 10 точек это плохо или хорошо? Или без разницы? или Ваш ответ софистика? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.08.2015, 22:59 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
Программист 1с,Тоесть при 10 точках план запроса (и сам запрос) будет одинаков с планом запроса (и сам запрос) если его разбить на подзапросы естественно с левыми соединениями? Вы всегда когда не хотите отвечать на прямые вопросы, начинаете придумывать оправдания (софистика и тд)?Вы очевидно не читаете что я пишу. Если ответа на свой вопрос вы не увидели, повторю еще раз. Да, тексты запросов с точками и левыми соединениями будут одинаковыми для СУБД, и план будет одинаковым при прочих равных условиях. Только откуда там взялись подзапросы, один запрос с левыми соединениями. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2015, 00:01 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
javapeckerПрограммист 1с,Тоесть при 10 точках план запроса (и сам запрос) будет одинаков с планом запроса (и сам запрос) если его разбить на подзапросы естественно с левыми соединениями? Вы всегда когда не хотите отвечать на прямые вопросы, начинаете придумывать оправдания (софистика и тд)?Вы очевидно не читаете что я пишу. Если ответа на свой вопрос вы не увидели, повторю еще раз. Да, тексты запросов с точками и левыми соединениями будут одинаковыми для СУБД, и план будет одинаковым при прочих равных условиях. Только откуда там взялись подзапросы, один запрос с левыми соединениями.Еще раз уточняю - если вместо одного запроса с 10 точками сделать несколько пакетов запросов, то ничего не изменится? Не текст запроса, ни план запроса? Также напишите сюда запрос и план запроса(можно в простейшем случае выдуманном вами) для файлового варианта. Раз ничего не меняется - у Вас это не вызовет проблем? Или Вы сразу скажете что не можете этого сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2015, 13:40 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
слепой с глухим общается . Программист 1с - "сделать несколько пакетов запросов" никто не говорил ни разу. Просто соединение с 10 таблицами. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2015, 14:04 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
Программист 1с, перестаньте пожалуйста вилять. Откуда взялся пакет запросов? Точки преобразуются в левые соединения. Все. больше ничего не происходит. 10 точек - десять соединений, в одном запросе. какая разница файловый вариант или серверный? речь идет о ТЕКСТЕ запроса, неважно кто потом будет обрабатывать этот текст, и следовательно план тоже не важен. Также напишите сюда запрос и план запроса(можно в простейшем случае выдуманном вами) для файлового варианта. Раз ничего не меняется - у Вас это не вызовет проблем? Или Вы сразу скажете что не можете этого сделать? Я не буду этого делать потому что план запроса не является тезисом нашего спора. Тезис такой: точки преобразуются в левые соединения, независимо от их количества, и это легко проверить. С тем что тексты запросов с точками преобразутся в тексты запросов с левыми соединениями вы согласны? Если да, то для чего вы требуете сравнение планов ОДИНАКОВЫХ запросов? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2015, 15:07 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
Zerroслепой с глухим общается . Программист 1с - "сделать несколько пакетов запросов" никто не говорил ни разу. Просто соединение с 10 таблицами.А Вы только один способ соединения знаете? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2015, 16:18 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
javapeckerПрограммист 1с, перестаньте пожалуйста вилять. Откуда взялся пакет запросов? Точки преобразуются в левые соединения. Все. больше ничего не происходит. 10 точек - десять соединений, в одном запросе. какая разница файловый вариант или серверный? речь идет о ТЕКСТЕ запроса, неважно кто потом будет обрабатывать этот текст, и следовательно план тоже не важен. Также напишите сюда запрос и план запроса(можно в простейшем случае выдуманном вами) для файлового варианта. Раз ничего не меняется - у Вас это не вызовет проблем? Или Вы сразу скажете что не можете этого сделать? Я не буду этого делать потому что план запроса не является тезисом нашего спора. Тезис такой: точки преобразуются в левые соединения, независимо от их количества, и это легко проверить. С тем что тексты запросов с точками преобразутся в тексты запросов с левыми соединениями вы согласны? Если да, то для чего вы требуете сравнение планов ОДИНАКОВЫХ запросов?Вы не в курсе как оптимизируются запросы? Или Вы в серьез думали что я буду десять левых соединений с подсоединениями пихать в один запрос не используя пакеты? А еще я про индексы не сказал. Вы это тоже не знаете? И в 5 раз спросила золотая рыбка пытаясь получить ответ: Десять точек в одном запросе меняем на ГРАМОТНЫЙ запрос содержащий и пакеты и индексы (а можно и еще кое-что). В этом случае будет один и тот же запрос и план запроса, и скорость одинакова? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2015, 16:23 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
Программист 1с, Вы не в курсе как оптимизируются запросы? Или Вы в серьез думали что я буду десять левых соединений с подсоединениями пихать в один запрос не используя пакеты? Я в курсе как оптимизируются запросы. Вы себе льстите, я не утруждал себя размышлениями о том как вы будете оптимизировать запросы, поскольку меня это не интересует. И в 5 раз спросила золотая рыбка пытаясь получить ответ: Десять точек в одном запросе меняем на ГРАМОТНЫЙ запрос содержащий и пакеты и индексы (а можно и еще кое-что). В этом случае будет один и тот же запрос и план запроса, и скорость одинакова? Ну знаете, такого я просто от вас не ожидал. Так съезжать с темы на форуме где у людей по определению с логикой все в порядке - по меньшей мере странно. Вы на ходу придумываете новые условия. Если же вы (ну мало ли) искренне не понимаете чего я от вас хочу, напишу еще раз, мне не сложно. Я утверждаю, что 1С преобразует точки в левые соединения (вы как знаток множества левых соединений, можете выбрать любое из вам известных). Согласны ли вы с тем, что 1С (подчеркиваю, 1С - не вы) преобразует точки в левые соединения? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2015, 16:52 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
Программист 1сZerroслепой с глухим общается . Программист 1с - "сделать несколько пакетов запросов" никто не говорил ни разу. Просто соединение с 10 таблицами.А Вы только один способ соединения знаете? четыле. больше в садике не учили. Давай только в крайности не бросаться - точки имеют право на существование .Не помню чтоб больше 3 точек вообще использовал. Если надо скорострельность - то лучше оптимизировать. Хеппи енд? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2015, 16:53 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
ZerroПрограммист 1спропущено... А Вы только один способ соединения знаете? четыле. больше в садике не учили. Давай только в крайности не бросаться - точки имеют право на существование .Не помню чтоб больше 3 точек вообще использовал. Если надо скорострельность - то лучше оптимизировать. Хеппи енд?С Вашим мнением полностью согласен. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2015, 18:30 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
javapeckerНу знаете, такого я просто от вас не ожидал. Так съезжать с темы на форуме где у людей по определению с логикой все в порядке - по меньшей мере странно. Вы на ходу придумываете новые условия. Если же вы (ну мало ли) искренне не понимаете чего я от вас хочу, напишу еще раз, мне не сложно. Я утверждаю, что 1С преобразует точки в левые соединения (вы как знаток множества левых соединений, можете выбрать любое из вам известных). Согласны ли вы с тем, что 1С (подчеркиваю, 1С - не вы) преобразует точки в левые соединения?Вы не ответили на 5 вопрос золотой рыбки. А пытаетесь задать свои. И в 6 раз спросила золотая рыбка пытаясь получить ответ: Десять точек в одном запросе меняем на ГРАМОТНЫЙ запрос содержащий и пакеты и индексы (а можно и еще кое-что). В этом случае будет один и тот же запрос и план запроса, и скорость одинакова? ps Специально для Вас - отвечу на Ваш вопрос - да соединение скорее всего левое. Но я не был бы так самоуверен в ситуациях с небольшим количество элементов в соединяемом справочнике. Вполне возможно что е зависимости от версий и внутренней оптимизации 1с, ситуация может и поменяться. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2015, 18:36 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
Программист 1с,И в 6 раз спросила золотая рыбка пытаясь получить ответ: Десять точек в одном запросе меняем на ГРАМОТНЫЙ запрос содержащий и пакеты и индексы (а можно и еще кое-что). В этом случае будет один и тот же запрос и план запроса, и скорость одинакова? Разумеется не будет. Это очевидно, и с этим утверждением я не спорил. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2015, 20:52 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
javapeckerПрограммист 1с,И в 6 раз спросила золотая рыбка пытаясь получить ответ: Десять точек в одном запросе меняем на ГРАМОТНЫЙ запрос содержащий и пакеты и индексы (а можно и еще кое-что). В этом случае будет один и тот же запрос и план запроса, и скорость одинакова? Разумеется не будет. Это очевидно, и с этим утверждением я не спорил.Отсюда вывод что 10 точек это плохо и надо менять? Если да - то по-моему дискуссия окончена. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2015, 23:08 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
Программист 1с,Отсюда вывод что 10 точек это плохо и надо менять? Если да - то по-моему дискуссия окончена. Это не дискуссия а горох об стену. И да, она окончена, я устал от вашей непроходимости. Устал повторять что меня не интересует ни количество точек, ни то, хорошо или плохо использовать их в таком количестве. Вам в бы в политику с таким подходом. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.08.2015, 23:32 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
Итак, экзаменатор посмотрел мое решение перейти в запросе к обращению по регистрам и попросил оптимизировать первоначальный запрос , а не добавлять/изменять метаданные. Немного погуглив, пришёл к выводу, что нужно использовать временные таблицы и соединения. Для проверки создал пустую базу с простейшим документом Продажа, с ТЧ Товары со списком Номенклатуры. Чтобы использовать отбор по реквизитам документа для упрощения задачи создал числовой реквизит "Поле1". Зашёл в 1С Предприятие и создал 1 "тяжелый" документ с около 200 строк ТЧ (3 уникальных номенклатуры). Обработкой копированием создал около 1000 его копий, отличающихся реквизитом "Поле1": заполнял в цикле Код: sql 1.
. Таким образом получил около 1000 документов, у каждого по 200 строк ТЧ, отличающихся реквизитом "Поле1" для условия. Далее используя консоль запросов Чистова с таймером выполнения запроса анализировал результаты (параметры &Нач = 3, &Кон = 9000). Итак: 1) Оригинальный запрос (упростил под структуру моего док-та) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Среднее время выполнения: ~2.067 сек 2) Запрос с использованием временной таблицы и внутренним соединением. Уникальность номенклатуры - ВЫБРАТЬ РАЗЛИЧНЫЕ Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
Среднее время выполнения: ~0.160 сек 3) Запрос с использованием временной таблицы и внутренним соединением. Уникальность номенклатуры - СГРУППИРОВАТЬ ПО Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
Среднее время выполнения: ~0.120 сек ВЫВОДЫ: Использование временной таблицы и внутреннего соединения позволило значительно сократить время выполнения. При этом "ВЫБРАТЬ РАЗЛИЧНЫЕ..." никакого выйгрыша по сравнению с "СГРУППИРОВАТЬ ПО..." не дало, а даже наоборот. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2015, 22:55 |
|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#18+
sevdo_tool, о том, что не стоит соединять множества всей номенклатуры продаж с документами продаж из диапазона вам намекали на первой странице. Спасибо, что отписали результат проверки и прекратили "беспощадный бой оптимизаторов". ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2015, 09:11 |
|
|
start [/forum/topic.php?all=1&fid=28&tid=1519024]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
68ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
139ms |
get tp. blocked users: |
1ms |
others: | 273ms |
total: | 527ms |
0 / 0 |