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

SQL Oracle Discussion :

Différence entre trigger et default


Sujet :

SQL Oracle

  1. #1
    Membre éprouvé Avatar de pinocchio
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2002
    Messages : 795
    Par défaut Différence entre trigger et default
    Bonjour,
    Je viens de remarquer, que la base sur laquelle je travaille, différents champs de type date sont mise à jour via des triggers.
    Ces triggers ne font que la mise à jour de la valeur par sysdate.
    Je serai tenté de dire que c'est plus lourd en temps qu'un DEFAULT sysdate.
    Quen pensez-vous s'il vous plait?
    Cordialement
    Pinocchio

  2. #2
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Citation Envoyé par pinocchio Voir le message
    ...Quen pensez-vous s'il vous plait?
    ...
    Qu'il se peut que ce n'est pas la même chose!

  3. #3
    Membre éprouvé Avatar de pinocchio
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2002
    Messages : 795
    Par défaut
    Les triggers sont du genre, tous identique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE OR REPLACE "TRIGGER TRIG_INS_A" BEFORE
    INSERT ON "A" FOR EACH ROW BEGIN
    	:NEW.DATE_C := sysdate;
    	:NEW.DATE_M := sysdate;
    	END;
    Avoir la colonne DATE_C DEFAULT sysdate, n'est pas identique?
    Pourriez-vous, s'il vous plait, m'expliquer la différence?

    Ma question vient du fait que ces insertions/modifications sont effectuées plusieurs centaines de fois par jour.
    Et donc même un petit gain pourrait améliorer un minimum la situation.
    Cordialement
    Pinocchio

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    Le trigger force la date.

    Le default ne la forcera que si la requête ne mentionne pas de date

  5. #5
    Membre éprouvé Avatar de pinocchio
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2002
    Messages : 795
    Par défaut
    Dans mon cas, ces dates-là ne sont pas mentionnées dans les requêtes. Donc cela devrait être la même chose, il me semble.

  6. #6
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 954
    Par défaut
    Pour les insert probablement mais pas pour les update.

  7. #7
    Membre Expert Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Par défaut
    Et puis si la colonne est NOT NULL, tu peux pas définir de DEFAULT ?

  8. #8
    Membre éprouvé Avatar de pinocchio
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2002
    Messages : 795
    Par défaut
    pacman, tu peux avoir default et not null.
    skuatamad, pour les updates, j'ai une date qui reste toujours à l'identique et une qui est mise à jour par la un trigger de mise à jour.

    Au niveau de la cohérence des données, je n'ai vraiment pas de souci (merci quand même car on pense pas forcément à tout). J'ai plus une interrogation sur la différence de charge entre les 2 méthodes.

    Je pensais que les triggers étaient un peu plus lourd d'oùma question.

    Cordialement

  9. #9
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Par défaut
    testez les deux méthodes avec des tables bidon ?

  10. #10
    Membre éprouvé Avatar de pinocchio
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2002
    Messages : 795
    Par défaut
    J'ai fais un test bidon de l'insertion de 293000lignes avec les 2 méthodes.
    DEFAULT : 25s
    trigger : 40s

    L'essai vaut ce qu'il vaut mais donc à priori, l'utilisation d'un trigger à mauvais escient alourdi.

    Merci pour vos réponses.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. 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
  2. Réponses: 2
    Dernier message: 19/09/2011, 13h09
  3. Trigger, différence entre AFTER ET BEFORE
    Par fardon57 dans le forum PL/SQL
    Réponses: 8
    Dernier message: 11/11/2008, 20h05
  4. différence entre dblink et Trigger
    Par flyfrog dans le forum Oracle
    Réponses: 6
    Dernier message: 20/10/2006, 12h09
  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