Fundamentos de dados distribuídos - Parte 03
Álvaro Gulliver (e-mail) é acadêmico de Engenharia da Computação na Unip, atua com desenvolvimento de sistemas há mais de 4 anos, e atualmente é especialista em SQL Server e responsável pelo banco de dados do portal www.logosveiculos.com.br.
Consultas Remotas
Olá amigos. Vamos conversar sobre um assunto pouco discutido, que é como fazer consultas remotas entre servidores. Depois de conhecermos como trabalhar a conexão Linked Server, agora é preciso saber como interagir as consultas entre eles.
Consultas Remotas
Depois que criamos os Linked Servers e feito o acesso de logins às bases remotas, podem-se realizar consultas. Se o destino for SQL Server, o comando será bem intuitivo:
select count(*) from SRV_SERVIDOR.Northwind.dbo.Products
A linha de comando acima poderia ter sido executada pelo login usuario_teste. Para SRV_SERVIDOR entretanto, quem realmente faz a consulta é usuario_alvaro.
Nada impede que sejam criadas Views que tornem transparente o acesso remoto:
create view vConsultaDados
Select * from SRV_SERVIDOR.Northwind.dbo.Products
Go
grant select on vConsultaDados to usuario_teste
E a consulta realizada por usuario_teste:
select count(*) from vCnsultaDados
O acesso utiliza quatro nomes (Servidor, Banco, Dono, Objeto) e não pode ser utilizado para outros destinos, tais como: Access ou Oracle. Em vez disso, executa-se a função OPENQUERY:
select * from OPENQUERY(teste, ‘select * from dados’)
E para Oracle:
select * from OPENQUERY (Oracle, ‘select * from clientes’) a where a.pais = ‘france’
Veja como foi utilizado o alias para que seja possível filtrar a relação de dados recebida. Outro detalhe: novamente, nada impede que sejam criadas Views para melhorar a compreensão dos comandos executados, então os usuários podem realizar consultas sem perceber que alguns dados do Oracle e outros do SQL Server, por exemplo.
No próximo artigo falaremos sobre Alterações Remotas e Views Particionadas, dando conclusão a esta série.
Um abraço a todos!