I would say it depends. Yes, probably not the answer you wanted, but it depends on the situation. Using linked servers is really cost-related, especially depending on the number of rows you are trying to return and the types of queries you are trying to run. You should be able to view your execution plan in your queries and see how much is used to get into the tables of related servers. This, as well as the time required to return the results, will probably help determine if necessary.
As for the local placement of tables, this also depends. Do you need modern data or static data? If static, then importing the table would not be a bad idea. If this data is constantly changing and you need changes, this may not be the best solution. You can always consider creating SSIS packages for this at night, but again, it just depends.
Good luck.
source share