/Banco de dados

voltar
/Banco de dados

Fundamentos de dados distribuídos – Parte 03

PorÁlvaro Gulliver em

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!

De 0 a 10, o quanto você recomendaria este artigo para um amigo?

 

Deixe um comentário! 1

1 comentário

Comentários

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Comentando como Anônimo

  1. Funcionalidade Muito útil. Resolveu um dilema que estava em discussão em nosso projeto. Ao invés de criar uma conexão JDBC alternativa para acessar uma tabela específica em um outro Servidor, conseguimos mapear uma view (através do hibernate) que aponta para um Linked Server deixando a manipulação dos dados de forma invisível para a aplicação e para o desenvolvedor.

leia mais
Este projeto é mantido e patrocinado pelas empresas: