|
Чем неоптимален данный запрос?
|
|||
---|---|---|---|
#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 |
|
|
start [/forum/topic.php?fid=28&fpage=24&tid=1519024]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 263ms |
total: | 407ms |
0 / 0 |