IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

différence entre dblink et Trigger


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 25
    Par défaut différence entre dblink et Trigger
    Bonjour,

    J'aimerais savoir quelle est la difference entre un dblink et un trigger. A priori les deux permettent de mettre a jour les tables d'une Base de données db2 à partir de celles d'une autre base de données db1.

    Y'a t-il un avantage de performance de l'un par rapport à l'autre ? Lequel utilisé et dans quel cas?

    Une deuxieme question impliquant l'aspect Java/BD. Dans le cas d'une application Java (J2ee) devant recuperer les données de deux bases de données db1 et db2 sachant que db2 doit etre mise à jour depuis db1 pour certaines de ses tables. Laquelle des deux solutions suivantes est la plus correcte coté performance et rapidité d'execution :

    1 - utiliser les dblink (ou trigger ?) pour mettre à jour db2 depuis db1 puis recuperer les données par l'application Java

    2 - Utiliser JMS pour lire db1 et ecrire dans db2 sans les dblink (ou triggers?). cela revient a eviter d'utiliser les techniques Oracle et tout faire en Java.

    Y'a t-il une troisieme solution plus performante pour interfacer une application Java avec plusieurs bases de données (Oracle dans mon cas)?

    Merci de votre réponse

  2. #2
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    il n'y a rien à voir entre les deux

    Un trigger est du code PL/SQL stocké qui se déclenche sur un événement (mide à jour de table, logon, etc...)

    Un DBlink c'est un alias qui permet de pointer vers une base de données distante.

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 74
    Par défaut
    Les triggers et les dblinks ne sont pas en concurrence.

    Le dblink est un lien de base de données qui permet à partir de db2 d'accéder à des objects de db1.
    Dans ton cas il faut que tu crée un dblink entre ta base db2 et ta base db1 afin qu'elles puissent communiquer.

    Puis se pose alors le problème du rafraîchissement de tes données.
    Personnelement je pencherai pour une solution full Oracle pour l'effectuer.
    Il y a de nombreuses méthodes suivant ton cas de figure :
    La réplication procédurale n'est pas évidente à mettre en oeuvre, les snapshots sont un bon moyen de rafraîchir ta base db2.
    Plus récemment l'Advanced Queuing (à partir de la version 8i) et Oracle Streams (à partir de la version 10G) sont les nouveaux moyens de répliquer des données. Mais il faut savoir que Streams est très gourmand.

    En résumé si les tables sont identiques sur db1 et db2 et qu'il s'agit juste d'aligner les tables de db2 sur celles de db1 je prendrai les snapshots, système robuste s'il en en ait.
    S'il s'agit de rajouter des tuples sur les tables de db1 l'Advanced Queuing ou la réplication procédurale sont bien (pour avoir travaillé sur les deux, je conseillerai l'AQ).

    Je débarque juste sur ce forum mais il me semble qu'il y a des tutoriels dans lesquels tu trouveras des infos sur ces techniques.

    Cordialement.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 77
    Par défaut
    Bonjour,

    je ne vois pas en quoi l'AQ est prévu pour faire de la synchronisation...

    pour moi, c'est un système de file d'attente de message qui permet de synchroniser plusieurs process entre eux

  5. #5
    Membre Expert
    Inscrit en
    Avril 2006
    Messages
    1 024
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 1 024
    Par défaut
    C'est un peu comme si tu demandais quelle est la différence entre un PC et un Cable-Réseau!

    Le Dblink c'est le cable, le trigger est un programme déclenché (comme son nom l'indique d'ailleurs ) à partir d'un évènement. Donc comme tout les programme, il fait ce qu'on lui a codé (y compris des requêtes à travers des dblink)

    D'expérience, la solution la plus light et simple et éficace pour répliquer des données d'une base vers une autre, c'est la réplication par snapshot distant.

  6. #6
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 25
    Par défaut
    Citation Envoyé par remi4444
    C'est un peu comme si tu demandais quelle est la différence entre un PC et un Cable-Réseau!

    Le Dblink c'est le cable, le trigger est un programme déclenché (comme son nom l'indique d'ailleurs ) à partir d'un évènement. Donc comme tout les programme, il fait ce qu'on lui a codé (y compris des requêtes à travers des dblink)

    D'expérience, la solution la plus light et simple et éficace pour répliquer des données d'une base vers une autre, c'est la réplication par snapshot distant.
    MErci pour vos réponses.

    Pourrais-tu donner plus d'informations sur "la replication par snapshot" ? Un lien URL concernant ce point me sera d'une grande utilité.

    Merci

  7. #7
    Membre Expert
    Inscrit en
    Avril 2006
    Messages
    1 024
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 1 024
    Par défaut
    Le terme exact pour snapshot est maintenant "vue matérialisée"

    voilà la doc oracle:
    http://download-uk.oracle.com/docs/c...7/repmview.htm

    Personnellement je vois pas trop la valeur ajoutée des fonctions comme DBMS_REPCAT.CREATE_MVIEW_REPOBJECT etc... je m'en passe et je crée les vues et les groupe directement par les instruction sql.

Discussions similaires

  1. Différence entre trigger et default
    Par pinocchio dans le forum SQL
    Réponses: 9
    Dernier message: 07/12/2011, 09h26
  2. Différence entre un "bidouilleur" et un Pro ?
    Par christ_mallet dans le forum Débats sur le développement - Le Best Of
    Réponses: 290
    Dernier message: 28/11/2011, 10h53
  3. Réponses: 2
    Dernier message: 19/09/2011, 13h09
  4. Trigger, différence entre AFTER ET BEFORE
    Par fardon57 dans le forum PL/SQL
    Réponses: 8
    Dernier message: 11/11/2008, 20h05
  5. Réponses: 3
    Dernier message: 07/05/2002, 16h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo