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 :

Utilisation d'un index


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 97
    Points : 65
    Points
    65
    Par défaut Utilisation d'un index
    Bonjour,
    je travaille à l'optimisation de requêtes et je me pose des questions concernant des requêtes qui au premier abord sont plus que simple.


    Soit la Ecriture table suivante :
    - colonne IdEcriture integer (PK )
    - colonne DateEcriture Date (Indexée)


    Lorsque je fais une requête du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select * from Ecriture where DateEcriture = '01/01/2012'
    Son analyse met en évidence l'utilisation de l'index sur le champ DateEcriture (index seek).


    Par contre, si je fais la requête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select * from Ecriture where DateEcriture between  '01/01/2012' and '01/01/2013' 
    L'index utilisé n'est autre que celui de la clé primaire (Clustered index scan).

    Quelqu'un aurait-il une explication rationnelle?

  2. #2
    Membre éprouvé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 623
    Points : 1 049
    Points
    1 049
    Par défaut
    L'optimiseur doit considérer que la plage de date est trop important.
    Soit il fait un index seek sur la date puis un lookup pour récupérer toutes les autres colonnes, soit il fait un scan de l'index cluster.
    Dans la première requête, le seek doit être plus avantageux.
    Blog Perso | Kankuru (logiciel gratuit pour SQL Server)

Discussions similaires

  1. [ASE 12.5] Comment connaître l'utilisation de chaque index?
    Par syldup dans le forum Adaptive Server Enterprise
    Réponses: 1
    Dernier message: 31/08/2007, 15h50
  2. [DEBUTANT] Utilisation UNIQUE KEY, INDEX,
    Par nounetmasque dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 26/07/2007, 17h07
  3. [Oracle 8i] utilisation d'un index
    Par azziz2005 dans le forum Oracle
    Réponses: 9
    Dernier message: 18/05/2006, 17h42
  4. [TUNING] pb non utilisation de l'index
    Par ruthene dans le forum Oracle
    Réponses: 10
    Dernier message: 13/04/2006, 17h02
  5. Taux d'utilisation d'un index
    Par plochert dans le forum Oracle
    Réponses: 1
    Dernier message: 07/04/2006, 15h22

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