Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
 Подзапрос vs LEFT JOIN  [new]
sysdba22
Member

Откуда:
Сообщений: 309
С точки зрения теории построения внутренней работы сервера. Предположим есть некоторый запрос. Есть еще некоторая таблица, связанная с одной из таблиц из запроса. Если нам надо из этой таблицы извлечь значение, то будет ли разница в плане производительности:

1) извлечь значение подзапросом в части SELECT основного запроса.

2) подсоединить таблицу через LEFT JOIN в основной запрос и прописать нужное нам поле в части SELECT.
8 окт 21, 20:20    [22381411]     Ответить | Цитировать Сообщить модератору
 Re: Подзапрос vs LEFT JOIN  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54806

Нет. Но будет проблема если связь не 1:1.

Posted via ActualForum NNTP Server 1.5

8 окт 21, 22:08    [22381444]     Ответить | Цитировать Сообщить модератору
 Re: Подзапрос vs LEFT JOIN  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 6642
sysdba22,

будет для фб. используй вариант 2
8 окт 21, 22:37    [22381454]     Ответить | Цитировать Сообщить модератору
 Re: Подзапрос vs LEFT JOIN  [new]
Ivan_Pisarevsky
Member

Откуда: НН
Сообщений: 8878
Бывает подзапрос с агрегатом, когда связь не 1-1,
бывает надо извлечь несколько полей,
бывает сбор кусков запроса на клиенте,
бывает надо насобирать много чего по первичке, а потом на самом последнем этапе берешь все в скобки и прицепляешь лефтом пачку полей широкого справочника (товаров, например, или контрагентов), чтоб они не мешались внутри запроса, а на выводе нужны.
бывает тупит запрос и чтоб было легче разобрать пяток-другой джойнов перекинешь по подзапросам, чтоб логику не затушевали, там и разобраться проще становится.

Короче нет "серебряной пули", смотреть по месту, т.е. плану и решать.
9 окт 21, 12:31    [22381570]     Ответить | Цитировать Сообщить модератору
 Re: Подзапрос vs LEFT JOIN  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 6642
Ivan_Pisarevsky
Бывает подзапрос с агрегатом, когда связь не 1-1,
бывает надо извлечь несколько полей,
бывает сбор кусков запроса на клиенте,
бывает надо насобирать много чего по первичке, а потом на самом последнем этапе берешь все в скобки и прицепляешь лефтом пачку полей широкого справочника (товаров, например, или контрагентов), чтоб они не мешались внутри запроса, а на выводе нужны.
бывает тупит запрос и чтоб было легче разобрать пяток-другой джойнов перекинешь по подзапросам, чтоб логику не затушевали, там и разобраться проще становится.

Короче нет "серебряной пули", смотреть по месту, т.е. плану и решать.
Ты, наверное, тоже читал исходники "оптимизатора" ФБ и потому такой умный?

+
Знаю же, что нетъ, что ты в С ни в зуб лапой


Сообщение было отредактировано: 9 окт 21, 22:25
9 окт 21, 22:32    [22381779]     Ответить | Цитировать Сообщить модератору
 Re: Подзапрос vs LEFT JOIN  [new]
Ivan_Pisarevsky
Member

Откуда: НН
Сообщений: 8878
+
Siemargl
потому такой умный?
А ты чё дерзкий такой? Столько раз помпезно уходил и вот опять... пнуть под зад? Знаю же что ты в файрберде ни в зуб лапкой. Вряд ли найдется хоть один оплакивающий.
10 окт 21, 10:24    [22381816]     Ответить | Цитировать Сообщить модератору
 Re: Подзапрос vs LEFT JOIN  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54806

Siemargl
будет для фб.

Напомни, с какой версии она научилась делать outer join чем-то отличным от
nested loop?..

Posted via ActualForum NNTP Server 1.5

10 окт 21, 12:23    [22381831]     Ответить | Цитировать Сообщить модератору
 Re: Подзапрос vs LEFT JOIN  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 6642
Ivan_Pisarevsky
+
Siemargl
потому такой умный?
А ты чё дерзкий такой? Столько раз помпезно уходил и вот опять... пнуть под зад? Знаю же что ты в файрберде ни в зуб лапкой. Вряд ли найдется хоть один оплакивающий.

Считай это дружеской подколкой=) Кстати, сам ведешь себя подобно, особенно если дело касается Windows.
Да и критику тут и особенно в Дельфи воспринимают неадекватно, так что стараюсь не шуметь по пятницам.


Dimitry Sibiryakov

Siemargl
будет для фб.

Напомни, с какой версии она научилась делать outer join чем-то отличным от
nested loop?..

Я честно говоря, пришел к выводу, что ФБ для моей области деятельности бесполезна, и забросил (хотя и считаю ее неплохой для определенных задач), да и не требовались мои исследования сообществу. Так что не скажу, но там весь оптимизатор в одном файле.

ЗЫ. А на cmake все таки перешли. Лет через несколько после меня. NIH
10 окт 21, 19:08    [22381906]     Ответить | Цитировать Сообщить модератору
 Re: Подзапрос vs LEFT JOIN  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54806

Siemargl
Так что не скажу

То есть твоё заявление, что left join лучше подзапроса совершенно безосновательно.

Siemargl
А на cmake все таки перешли.

Нет, не перешли. Это всё ещё пятое колесо, которое ни у кого не хватает духу
выкинуть.

Posted via ActualForum NNTP Server 1.5

10 окт 21, 19:13    [22381909]     Ответить | Цитировать Сообщить модератору
 Re: Подзапрос vs LEFT JOIN  [new]
hvlad
Member

Откуда:
Сообщений: 11555
Siemargl
ЗЫ. А на cmake все таки перешли. Лет через несколько после меня.
Не знаю, чем ты хотел померяться, но в cmake был добавлен в FB 21.01.2015, тогда как твоё (IH) закоммиченно 28.11.2016

PS и - нет - не перешли, сборка с cmake поддерживается как дополнительная и обновляется при необходимости.
10 окт 21, 19:50    [22381917]     Ответить | Цитировать Сообщить модератору
 Re: Подзапрос vs LEFT JOIN  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 6642
hvlad
Siemargl
ЗЫ. А на cmake все таки перешли. Лет через несколько после меня.
Не знаю, чем ты хотел померяться, но в cmake был добавлен в FB 21.01.2015, тогда как твоё (IH) закоммиченно 28.11.2016

PS и - нет - не перешли, сборка с cmake поддерживается как дополнительная и обновляется при необходимости.
Когда я это делал, в папке с исходниками cmakelist не было, а сейчас есть. Впрочем, какая разница.
10 окт 21, 20:16    [22381922]     Ответить | Цитировать Сообщить модератору
 Re: Подзапрос vs LEFT JOIN  [new]
Старый плюшевый мишка
Member

Откуда:
Сообщений: 1134
Ivan_Pisarevsky
+
Siemargl
потому такой умный?
А ты чё дерзкий такой? Столько раз помпезно уходил и вот опять... пнуть под зад? Знаю же что ты в файрберде ни в зуб лапкой. Вряд ли найдется хоть один оплакивающий.



Изи, изи... Долго пытался понять какое отношение твои познания в Ц имеют к концептуальным тезисам, которые ты изложил и почему это так взбудоражило уважаемого. А потом вдруг в памяти всплыла одна передача в телевизири. Там юная журналистка-блондиночка всё докапывалась до Лебединского:

- Всё-таки, Алексей Игоревич, что же является источником вдохновения Ваших песен?
- Алкоголь, деточка, алкоголь...

10 окт 21, 20:46    [22381936]     Ответить | Цитировать Сообщить модератору
 Re: Подзапрос vs LEFT JOIN  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 6642
Siemargl
hvlad
пропущено...
Не знаю, чем ты хотел померяться, но в cmake был добавлен в FB 21.01.2015, тогда как твоё (IH) закоммиченно 28.11.2016

PS и - нет - не перешли, сборка с cmake поддерживается как дополнительная и обновляется при необходимости.
Когда я это делал, в папке с исходниками cmakelist не было, а сейчас есть. Впрочем, какая разница.

Там в ридми дата прописана 23-03-2011. Видимо, тогда я не пользовался гитхабом.

Кстати, есть и местная тема 10404352

Сообщение было отредактировано: 12 окт 21, 21:54
12 окт 21, 22:04    [22382866]     Ответить | Цитировать Сообщить модератору
 Re: Подзапрос vs LEFT JOIN  [new]
hvlad
Member

Откуда:
Сообщений: 11555
Siemargl,

и... ?
12 окт 21, 22:38    [22382880]     Ответить | Цитировать Сообщить модератору
 Re: Подзапрос vs LEFT JOIN  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 6642
hvlad
Siemargl,

и... ?
И померялся! =)
13 окт 21, 11:27    [22383047]     Ответить | Цитировать Сообщить модератору
 Re: Подзапрос vs LEFT JOIN  [new]
hvlad
Member

Откуда:
Сообщений: 11555
Siemargl
hvlad
и... ?
И померялся! =)
Ну... удачных замеров :)
13 окт 21, 11:29    [22383048]     Ответить | Цитировать Сообщить модератору
Все форумы / Firebird, InterBase Ответить