Maybe some of the tables which you are trying to (outer) join are disjoint? If so, consider creating stored procedure instead of view and create something like this:
select ...
into #set1
from T1 left join T2 left join...
where ...
select ...
into #set2
from T3 left join T4 left join...
where ...
...
select ... from #set1 left join #set2 left join ...
With this, you can avoid processing huge amount of data. When you make outer joins, optimizer often cannot move selection down in the parse tree of query (if it done so, you wouldn't get rows with nulls which you probably want)
Of course you cannot create query with joining with stored procedure. This is only basic idea which you can use.