на self join. Explain показывает снижение затрат по времени выполнения в два раза.
Погуглив, наткнулся на такую фразу:
Avoid self-joins. Use a window (analytic) function instead.
Так что вопрос - почему это считается плохо и не надо использовать self join?
Потому что они зачастую оптимизируются лучше, вот и всё. Но иногда — намного хуже, учтите (а некоторые запросы на window functions и вовсе не перепишешь). Т.е. планы нужно смотреть (или примерно представлять, как это всё работает), по-хорошему.
Обсуждают сегодня