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

MS SQL Server Discussion :

"max()" ou "ident_current" ?


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 38
    Par défaut "max()" ou "ident_current" ?
    Bonjour à toutes et à tous, je me pose une question, sans doute existencielle à vos yeux mais qu'importe, j'aimerais avoir une réponse :
    Quel est selon vous le plus rapide entre ces 2 requêtes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select max(ladate) from date;
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select ladate from date where iddate = ident_current('date');
    ces requêtes renvoient toutes deux la même chose, la dernière date dans la table "date".

  2. #2
    Membre confirmé

    Inscrit en
    Octobre 2002
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 139
    Par défaut
    Salut,

    la vitesse dépendra de si tu as mis un index sur ta colonne. Un autre moyen pour savoir laquelle des deux est la plus rapide dans l'analyseur de requête fait apparaître la trace du serveur et compare les résultats qu'il te fournit.

    edit : après avoir regarder la fonction ident_current, je pense que c'est la plus rapide. Mais je suis certain que le seul moyen de le savoir est d'utiliser la trace du serveur

    krest

  3. #3
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 38
    Par défaut
    Merci pour le tuyau, je ne connaissais pas la trace du serveur, c'est fort intéressant et enrichissant.
    Je pensais comme toi que ident_current était plus rapide et il s'avère que non, le "max()" est plus rapide. Les temps total et CPU sont = 0 car trop infime pour les mesurer sans doute, par contre, j'ai remarqué 2 lectures pour le "max()" contre 6 pour le "ident_current", j'en déduis alors que l'ident_current est plus lent que le "max()".
    En tout cas, merci de m'avoir fait découvrir la trace du serveur .
    A+

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

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