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 :

Impact performance CASE / ISNULL [2000]


Sujet :

Développement SQL Server

  1. #1
    Membre à l'essai
    Homme Profil pro
    Chef de projets MOE/MOA
    Inscrit en
    Mars 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets MOE/MOA
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Mars 2007
    Messages : 27
    Points : 19
    Points
    19
    Par défaut Impact performance CASE / ISNULL
    Bonsoir,

    Je reprends peu ou prou les fils déjà existants tels celui-ci, ma question est plutôt : comment le moteur SQL interagit-il dans un cas comme celui-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT a,
    b,
    ISNULL(c, fonction_1(a, b)),
    CASE WHEN d IS NOT NULL THEN d ELSE fonction_2(a, b) END,
    e
    FROM maTable
    ie., le ISNULL tient-il compte immédiatement de la valeur de c si non null sans évaluer fonction_1, ou doit-on tenir compte de l'impact performance de fonction_1, et de même pour le CASE, celui-ci est-il évalué dans son intégralité ou si la première condition est respectée, poursuit-il le cheminement du SQL ?

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Dans les deux cas, les fonctions ne seront évaluées que si c (ou d) est NULL.

    en revanche, entre les deux méthodes vous pouvez avoir des plans d’exécution différents :
    http://www.developpez.net/forums/d13...null-coalesce/

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

Discussions similaires

  1. [11gR2] Archive log et impact performances
    Par devkais dans le forum Oracle
    Réponses: 3
    Dernier message: 30/01/2014, 17h35
  2. Impact performances sur Set statistics time
    Par SetaSensei dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 19/05/2010, 14h19
  3. la fonction isnull sur les cases à cocher
    Par Manu59410 dans le forum VBA Access
    Réponses: 2
    Dernier message: 30/08/2007, 10h51
  4. [Oracle8i]Performances CASE, DECODE
    Par Drizzt [Drone38] dans le forum Oracle
    Réponses: 6
    Dernier message: 27/03/2007, 16h42
  5. [SQL] performances Decode ou Case when ?
    Par Yorglaa dans le forum Oracle
    Réponses: 8
    Dernier message: 01/10/2004, 15h50

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