You put the filter in an external table (date_dimension__calendar_year = year), so there will be no difference between the result set, whether you are using an inner join or a left outer join.
Order processing is processed on an intermediate result set, if this is done in internal tables, then this must be done after joining the tables, which means reading: joining records; read two: order combined notes.
But if ordering is done only in the external table, in this case everything you ask for, then your query optimizer may be able to avoid reading the entire set twice, and instead, read the external table twice. Your optimizer may recognize this as a savings in terms of processing power.
This is just a hunch. Your result set should be the same anyway. I wonder if you can find time in both directions and see which one takes longer.
Chains
source share