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!