Isso é chamado de consulta distribuída e é bastante comum. Um servidor vinculado é a maneira mais comum e mais fácil de fazer o que você descreve; Se isso não funcionar, você pode tentar OPENQUERY ou OPENROWSET, mas provavelmente não precisará. Outros cobriram o "como" de criar um servidor vinculado, então não vou entrar em detalhes.
As consultas que usam um servidor vinculado podem sofrer um impacto no desempenho, mas o desempenho não é prejudicado no servidor como um todo. Como os servidores estão dispersos geograficamente, o impacto no desempenho será maior do que se estivessem na mesma LAN; você terá que tentar para ver se o desempenho é aceitável, mas assumindo que o servidor remoto tenha tempos decentes de resposta, você provavelmente ficará bem.
O mais importante a ser lembrado ao usar um servidor vinculado é manter os conjuntos de resultados retornados do servidor remoto o mais focado possível. O SQL Server não fornece um link ativo entre os dois servidores para fazer uma junção "ao vivo" entre objetos em servidores diferentes da mesma maneira que acontece quando tudo está no mesmo servidor. O que ele faz, em vez disso, é dividir a consulta distribuída em partes que podem ser executadas de forma independente nos servidores remotos, depois trazer os resultados de volta ao servidor de chamada (local) e concluir o trabalho. Isto significa que qualquer coisa - junções, condições, cálculos, etc. - que envolva mais de um servidor deve ser mantido no servidor local, e quaisquer dados que sejam necessários para suportar isso devem ser trazidos de volta . Como um exemplo simples, se uma tabela de 10.000.000 de linhas em um servidor remoto estiver associada a uma tabela de 15 linhas no servidor local, o SQL Server retornará todas as 10.000.000 linhas do servidor remoto para executar a junção! Não é preciso dizer que isso causará um impacto significativo no desempenho, especialmente em uma conexão mais lenta. Use planos de execução estimados para verificar as consultas remotas; usar coisas como colunas derivadas e CTEs para "explicitamente" criar consultas atômicas que podem ser passadas por atacado para o servidor remoto; e se você está vendo um problema sério, não tenha medo de dividir suas consultas em consultas separadas para forçá-lo a retornar um pequeno conjunto de resultados.
Espero que isso ajude!