Hello, All! Есть(не у меня) запрос, в котором джойнятся две процедуры, и, что самое неприятное, лефтом. Подумав, а потом почитав http://www.ibase.ru/devinfo/dataaccesspaths.htm "Так как алгоритм слияния не поддерживается для внешних соединений, то всегда будет выбран рекурсивный алгоритм."
Выходит что для такой ситуации выхода нет и в ближайшее время не придвидится? (как обойти проблему понятно, но интересует именно возможность слияния для внешних соединений - это какое-то принципиальное ограничение?) 10 вызовов p2 select * from proc_1 p1 join proc_2 p2 on p1.id_1=p2.id_2 PLAN MERGE (SORT (PROC_2 NATURAL), SORT (PROC_1 NATURAL)) 200 вызовов p2 select * from proc_1 p1 left join proc_2 p2 on p1.id_1=p2.id_2 PLAN JOIN (PROC_1 NATURAL, PROC_2 NATURAL) create procedure proc_2 returns (id_2 integer) as declare variable q integer; begin id_2 = 20; while (id_2>0) do begin suspend; id_2 = id_2 - 2; q = gen_id(gen_1, 1); end end CREATE PROCEDURE PROC_1 RETURNS ( ID_1 INTEGER) AS begin id_1 = 20; while (id_1>0) do begin suspend; id_1 = id_1 - 1; end end -- -=Чисто прибранная квартира - признак неисправного компьютера.=- With best regards, Nikolay Ponomarenko