Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
28 сен 2024, 20:24

Вложенный запрос и Временная таблица

Автор Константин163, 31 мар 2015, 10:46

0 Пользователей и 1 гость просматривают эту тему.

Константин163

В чем отличие "Временной таблицы" от "Вложенного запроса"?
Ведь "Временную таблицу" можно заменить "Вложенным запросом" и наоборот?

LexaK

примерно такая же разница как и в программировании с процедурами и функциями или без них
в одном случае у вас код получается читабельный, структурированный, который легко понять и поддерживать/модифицировать.
а в другом случае получается модуль с несколькими сотнями (тысячами) строк кода, где очень трудно разобраться

так и в запросах
результаты временных таблиц можно использовать несколько раз,
код значительно читабельнее,
в некоторых местах вложенные запросы могут значительно затормозить получение результата,
большая вложенность запросов вообще не читабельна,
и т.д.
если помогло нажмите: Спасибо!

cska-fanat-kz

да и скл сервер не всегда может правильно составить план выполнения запроса с вложениями
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

blackmoon89

до того момента, пока вам не приходится использовать одни и те же данные в одном запросе, разница примерна такая же как в вопросе о том, можно ли есть курицу руками
разница будет в производительности, когда вам нужно использовать повторно выборку временнной таблицы или запроса, но даже в том случае, если в выборка в эту таблицу идет с условиями.

допустим вы выбираете весь справочник, без всяких условий, то и писать его во временную таблицу смысла нет, можно второй раз делать вложенный запрос и разницы в производительности не будет

Константин163

т.е. если я правильно понимаю, то к "Временной таблице" я могу обращаться несколько раз, а к "Вложенному Запросу" только один раз в момент получения данных из него?

blackmoon89

Цитата: Константин163 от 31 мар 2015, 18:44
т.е. если я правильно понимаю, то к "Временной таблице" я могу обращаться несколько раз, а к "Вложенному Запросу" только один раз в момент получения данных из него?
Вы можете обращаться хоть сколько раз, хоть ко временной таблице, хоть ко вложенному запросу. Представьте себе миллионы записей, из которых предикатом like выбираются десяток записей и ложится во временную таблицу, затем обращение ко временно таблице уже будет происходить без предиката, а просто селект. В случае же со вложенным запросом, он несколько раз будет выбирать данные из первоначальных миллионов.

Константин163

Значит если при написании кода я сделал какую то выборку путем ВложенногоЗапроса, а при дальнейшем написании кода мне опять понадобилась та же самая выборка, то мне опять придется писать ВложенныйЗапрос?
А в случае в ВременнойТаблицей я бы просто к ней обратился?:xfbnsdfb:

vitasw


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск