Bonjour,
J'ai 2 SGBD Oracle tournant sur deux serveurs différents.
Je dois croiser les informations des 2 bases, en asp.net.
Comme le faire simplement avec ADO.net, Linq To Entity ou Linq To Sql.
Merci d'avance,
Hervé
Bonjour,
J'ai 2 SGBD Oracle tournant sur deux serveurs différents.
Je dois croiser les informations des 2 bases, en asp.net.
Comme le faire simplement avec ADO.net, Linq To Entity ou Linq To Sql.
Merci d'avance,
Hervé
Je crois, Oracle fourni un provider pour Linq mais je ne sais pas ce qu'il vaut et les limitation qu'il pourrait avoir par rapport au fonctionnalités oracle. trouver...
Donc je ADO c'est plus simple.
Une première technique consisterais à créer un dblink entre les bases. Du coup il suffit d'avoir une connexion à la base ayant accès à l'autre et on peut ainsi créer des requêtes croisant le deux bases.
Sinon 2 connexions on récupère 2 listes de données et on peut utiliser Linq (tout court) pour croiser les 2 résultats, cela risque bien sûr de charger un peu le serveur applicatif.
A n'utiliser que pour croiser des requêtes en revanche...Une première technique consisterais à créer un dblink entre les bases. Du coup il suffit d'avoir une connexion à la base ayant accès à l'autre et on peut ainsi créer des requêtes croisant le deux bases.
Gardez à l'esprit que si vous ne faites qu'une CS pour vous simplifier la vie les requêtes passeront deux fois par le réseau...
Sauf si vos instances son sur un même serveur physique?
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
MCTS Database Development
MCTS Database Administration
Merci beaucoup pour votre aide.
à priori une seule connectionString.
Les 2 instances sont sur 2 serveurs différents.
Je penche donc plutôt pour la solution du dblink.
Mais comme ce sont des bases critiques en production, je dois demander des autorisations pour créer ce dblink.
Je vous tiens au courant.
Donc si vous faites un select sur le serveur 2 en passant par le serveur 1 vos données:à priori une seule connectionString.
Les 2 instances sont sur 2 serveurs différents.
transitent entre le 2 et le 1 puis entre le 1 et votre serveur client...
Vous doublez le trafic réseau?
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
MCTS Database Development
MCTS Database Administration
Oui mais le choix d'un archi ou de l'autre dépend des volumes en jeux et de la liaison entre les serveurs à priori s'ils sont sur les même site avec une liaison 1Go alors bon ça n'a pas d'importance.
Sinon il faut voir si le fait de "croiser" les données démultiplie ou réduit le volume. S'il démultiplie il vaudrait mieux travailler sur le serveur applicatif sinon sur un des serveur de base de données.
Mais bon il est fort à parier que les serveur de BDD sont plus puissants et oracle plus adapté pour ce genre de traitement donc dblink devrait être plus performant.
Petite précision, je viens de faire le dblink sur la base Oracle Flexcube, qui est une application Oracle de core banking. (http://www.oracle.com/us/industries/...es/046655.html)
Le dblink s'est fait sans soucis apparent.
Seul soucis : le support Oracle semble déconseiller les DBLink sur Flexcube...
Je ne connais pas Oracle Flexcube, mais en lisant la présentation, il est décrit que cela doit fournir des service de type SOA, donc dans ce cas il est plus sûr de consulter le Flexcube en consommant ce web service. Et du coup de réaliser la croisement des données coté applicatif.
Dans ce descriptif il est question de SOA :
http://www.oracle.com/us/industries/...es/046901.html
C'est vrai.
Mais la version de Flexcube que j'utilise est ancienne.
Finalement, j'ai fait un BDLink, une vue.
Je créé une entité à partir de cette vue, et ça fonctionne nickel !
Merci pour votre aide,
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager