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

Développement SQL Server Discussion :

Trigger et/ou procédure stockée ?


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2011
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 4
    Par défaut Trigger et/ou procédure stockée ?
    Bonjour,

    Afin de ne pas mettre le minimum de code dans mon interface .net j'ai décidé de déclarer des triggers sur mes tables.
    Je me pose alors une question en terme d'optimisation : trigger vs procédure stockée ?
    Grosso modo est ce que si je déplace la majorité de mon code dans une procédure je gagne du temps d'exécution ?

    Toujours dans un souci d'optimisation, vaut il mieux que je mette mes executions annexes dans des procédures avec variables output ou dans des fonctions ?

    Je sais que cela fait beaucoup de questions....

    Merci d'avance de vos réponses.

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Bonjour,

    Afin de ne pas mettre le minimum de code dans mon interface .net j'ai décidé de déclarer des triggers sur mes tables.
    Il n'y a pas de relation directe entre l'un et l'autre.
    Les triggers sont là pour implémenter une contrainte d'intégrité des données complexe liée au métier de votre entreprise.

    Je me pose alors une question en terme d'optimisation : trigger vs procédure stockée ?
    Là encore la différence entre un trigger et une procédure stockée est majeure : une procédure stockée est une suite d'instructions qui peut prendre en entrée des pamètres, et qui peut retourner des paramètres, un ensemble, ou rien.

    un trigger DML s'exécute lorsqu'une requête tente de modifier les données d'une table. Il ne peut prendre et fournir aucun paramètre, et son exécution est automatique.

    Donc par exemple : si vous voulez ajouter une commande pour un client, vous allez utiliser une procédure stockée.
    Si en revanche vous voulez automatiquement ajouter une commande à un fournisseur lorsque la quantité en stock d'un produit passe en dessous d'un seuil, vous utiliserez un peut-être un trigger.

    Enfin, pour en revenir aux règle métier d'une entreprise, vous pouvez aussi utiliser des contraintes de domaine (CHECK).
    Celles-ci peuvent être implémentées à l'aide d'une fonction SQL ou CLR.

    Grosso modo est ce que si je déplace la majorité de mon code dans une procédure je gagne du temps d'exécution ?
    Ce n'est pas le seul gain mais il est clair que c'est le principal.
    Pour vous en convaincre, je vous invite à lire l'article de SQLPro sur ce sujet (PDF).

    Toujours dans un souci d'optimisation, vaut il mieux que je mette mes executions annexes dans des procédures avec variables output ou dans des fonctions ?
    Les fonctions scalaires sont connues pour être contre-performantes.
    Ensuite pour les procédures stockées, cela dépend de ce que vous entendez par "annexe".
    Enfin les fonctions ont un certain nombre de limitations.

    Soyez plus précis dans votre contexte, en donnant des exemples concrets si vous voulez une réponse moins générale.

    @++

Discussions similaires

  1. Réponses: 8
    Dernier message: 16/09/2011, 19h35
  2. Réponses: 13
    Dernier message: 27/04/2011, 10h13
  3. Réponses: 3
    Dernier message: 09/11/2004, 14h43
  4. Procédures stockées et triggers
    Par benji17c dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 27/04/2004, 10h54
  5. [Comparatif] Procédures stockées, triggers, etc.
    Par MCZz dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 28/08/2002, 12h27

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