Зависит от величины запроса вообще. Если мелкий, то проще за кидать все в цте, теша себя надеждой что оно не заинлайнится во что-то что с большими ошибками в вычисления кардинальности на исполнение пойдёт.)
Про то как кто что использует. Есть БД разработчики и есть бэкэндщики, которые думают что они убер БД шарильщики. Среди бдшников ещё может быть что кто-то что-то вразумиьельное напишет, но вот бэкэндщики - сильно вряд ли. Темболее среди них полно адептов орм. И неизвестно кто более дикий запрос составит, они или орм.
Про ситуацию. Она, точнее итоговый план на исполнение, чаще зависит от объема данных предполагаемых оптимизатором. Опять же про разных людей. Я видетел достаточно много $5к+ синьеров бэкэнд кто с эксплейном знаком на уровне "знаю что есть какая-то такая команда". :)
> Если мелкий, то проще за кидать все в цте
Вот именно. И если не мелкий — тоже проще (я не думаю, что Вам удастся показать хоть какой-то пример, когда это не так). ;)
Т.е. я по-прежнему не вижу оснований давать советы вроде "не надо стремиться сделать все в один стейтмент" и каких-то конкретных проблем с этим, кроме, возможно, производительности — но у подхода с временными таблицами эта проблема будет гораздо чаще, мне кажется.
> теша себя надеждой что оно не заинлайнится во что-то что с большими ошибками в вычисления кардинальности на исполнение пойдёт.)
Смысл inlining — ровно в обратном, в норме. ;) Конечно, бывает и наоборот. И "большие ошибки вычисления кардинальности" не обязательно приводят к "плохим" планам; и, даже если приводят — их время исполнения может быть вполне приемлемым на практике.
> Среди бдшников ещё может быть что кто-то что-то вразумиьельное напишет,
Нормально писать запросы, в большинстве случаев, несложно.
> но вот бэкэндщики - сильно вряд ли.
Тогда с временными таблицами им всё удастся ещё хуже, нет?
> Про ситуацию. Она, точнее итоговый план на исполнение, чаще зависит от объема данных предполагаемых оптимизатором.
Да, конечно. Но вопрос в том, приводит ли это к проблемам на практике.
> Я видетел достаточно много $5к+ синьеров бэкэнд кто с эксплейном знаком на уровне "знаю что есть какая-то такая команда".
А оно им надо? Вряд ли кто-то сидит и "вытачивает" каждый используемый запрос.
Более того, то, что этой дурью маяться [почти всегда] не нужно, является существенным преимуществом SQL (по сравнению с получением того же результата "вручную", как это делали в не-SQL СУБД, если что). ;)