Query execution involving two servers in SQL server , is really slow
Yes you're right, joins across linked servers is slow. A simple but unflattering solve is to pull the data across from each table on other servers and insert it into a temp table (select a,b,c into #temp from server.database.schema.table) or table variable. Then use that table in your queries. A better way would be to design an ETL to periodically pull these tables onto a single server.