Было интересно прочесть. С такими сложностями не сталкивался ещё, но часто приходится заниматься оптимизацией запросов за другими людьми.
Обычно делают так:
select t.*, foo(t.id)
from table t
Когда лучше делать так:
select t.*, f.*
from table t
left join foo() f
Ещё был такой вариант действий в firebird, когда table1 имеет 150 записей, а table2 больше 2 млн.
select *
from table1 t1
left join table2 t2 on t2.t1_id = t1.id
where t2.date > current_date-1
Замена местами table1 и table2 — помогла сохранить не одну человеческую жизнь.
Обычно делают так:
Когда лучше делать так:
Ещё был такой вариант действий в firebird, когда table1 имеет 150 записей, а table2 больше 2 млн.
Замена местами table1 и table2 — помогла сохранить не одну человеческую жизнь.
Я использую glogg. Мне вполне нравится. Жаль не увидел в списке сравнения