full outer joins are heinously expensive.

select * from emp full outer join dept on (emp.deptno = dept.deptno)

is processed much like:


select *
  from emp, dept
where emp.deptno = dept.deptno(+)
UNION ALL
select *
  from emp, dept
where emp.deptno(+) = dept.deptno
   and emp.deptno IS NULL;