The order of joins does not matter.
What matters is that your statistics are updated.
One way to check your stats is to run the request in SSMS and include the actual execution plan. If the approximate number of lines is very different from the actual number of lines used by any part of the execution plan, then your statistics are out of date.
Statistics are restored when recovering related indexes. If your maintenance window allows, I would update the statistics every night.
This will update statistics for all tables in the database:
exec sp_MSforeachtable "UPDATE STATISTICS ?"
Mitch wheat
source share