I had a performance issue on my site and found a request for 7 seconds to complete
All columns in this query were numbered and indexed (SQL Server 2008 R2)
This complete outer join was between 3 tables with (150, 350 and 270) thousand rows each.
I just replaced the FULL OUTER JOIN for the LEFT JOIN and the runtime was reduced to 0 seconds (miliseconds)
Before I just checked a few rows Then, if the tables contain thousands or millions of records, the performance of a full outer join will not be good.
source share