Что лучше соединение или условие в запросе? #650586


#0 by Конфигуратор1с
Есть у меня таблица Документ Товар. Мне нужно отобрать строки в расходных накладных с отбором по товарам и документам из таблицы. Вот какой вариант правильнее Соединить две таблицы или сделать выборку из таблицы расходных накладных с условием где ссылка в (Выбрать документ из ВТ) и Товар в (Выбрать Товар из ВТ)?
#1 by GANR
По-моему, В - это тоже замаскированное соединение. План запроса покажет.
#2 by Конфигуратор1с
да я в скуле не силен к своему стыду(. Если есть ссылка как профайлером пользоваться для чайников, поделитесь будь ласка
#3 by GANR
sql-ex.ru
#4 by Лефмихалыч
что по факту быстрее, то и правильнее
#5 by GANR
Можно радии интереса задолбить простенькие запросики и проанализировать. Из 1С транслировать - тяжелые связибудут.
#6 by AaNnDdRrEeYy
если есть возможность не использовать временные таблицы то не используй, они физически пишуться на диск а это медленно
#7 by GANR
Не факт, кстати.
#9 by AaNnDdRrEeYy
что не факт? то что на диск физически пишутся или что запись на диск это медленно?
#10 by GANR
На диск физически пишутся. Уверен?
#11 by AaNnDdRrEeYy
ну да пишуться, когда в запросе есть ПОМЕСТИТЬ
#12 by sapphire
Проще выбрать сначала документы и к ним inner join по Ссылке и условие по номенклатуре.
#13 by alkov
А вот посоны из 1С пишут, что вложенные запросы - зло, а временные таблицы рулят
#14 by GANR
Может, все-таки, начиная с MS SQL 2005-2008 они в оперативе висят (если хватает)?
#15 by samozvanec
это если не хватает памяти
#16 by Рыжий Лис
Результат этих двух вариантов будет разный. Пример: А в жизни в Док1 продается Ном1, а в Док2 - Ном2.
#17 by Sammo
Временные таблицы позволяют управлять планом скулевского запроса. Что может приводить к более оптимальному его выполнению Имхо в 0 - без разницы. Но я бы делал через соединение, т.к. в некоторых частных случаях при корявой статистике у меня получался диковатый запрос при использовании В (Выбрать). Использование соединений/временных таблиц проблему решало
#18 by AaNnDdRrEeYy
можешь сам проверить фигани во временную таблицу побольше записей и смотри на файл tempdb.mdf (временная база данных sql) файлик будет расти, мелкие может и висят но крупные точно пишуться
#19 by GANR
На нормальных серваках от 20 Гигов оперативы. Это ведь ещё и настраивать можно. Не знаю правда или нет, мне сказали, что у кого-то аж база целиком в оперативе висит (на сказку похоже, что-то).
#20 by Конфигуратор1с
всем спасибо, буду делать по ходу соединением. Просто думал есть какая рекомендация от 1с где написано как кошернее)
#21 by alkov
Есть, например, такие рекомендации:
#22 by Конфигуратор1с
Да. еще такой вопрос. знакомый скльщик утверждает что задавать условие в соединениях єффективнее чем в разделе где. Для 1с это тоже актуально?
#23 by Конфигуратор1с
спасибо огромное.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С