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

Administration SQL Server Discussion :

[SQL SERVER 2K] Index clustered et non clustered [Fait]


Sujet :

Administration SQL Server

  1. #1
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 73
    Points : 48
    Points
    48
    Par défaut [SQL SERVER 2K] Index clustered et non clustered
    Bonjour à tous,

    Je travaille actuellement sur une base de données SQL SERVER 2000, et j'ai remarqué que dans certaines tables des index non clustered ont été créés sur la premiére colonne de l'index clustered.

    Exemple pour la table TEST qui contient 5 colonnes A, B, C, D, E
    Index clustered = A, B, C
    Index non clustered = A
    Y'a-t'il un quelconque intérêt à redéfinir un index non clustered sur la colonne A (à part de perdre de l'espace disque !!!!) ? Après avoir lu pas mal de documentations dessus il me semble que non puisqu'arrivé au noeud feuille d'un index non clustered, la clé de l'index clustered est trouvée (c'est l'équivalent d'un double seek d'index). Néanmoins j'aurais souhaité avoir votre avis sur ce sujet.

    Cdlt.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 761
    Points : 52 547
    Points
    52 547
    Billets dans le blog
    5
    Par défaut
    cela se discute car un index sur 3 colonnes est plus de 3 fois plus gourmand qu'un index sur 2 colonnes, donc 3 fois moins rapide. il n'est donc pas toujours stupide de laisser ces index que l'on dit "superposés"...

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 73
    Points : 48
    Points
    48
    Par défaut
    Merci de votre réponse.

    Mais lors d'une recherche par index non clustered n'y a-t'il pas toujours une recherche dans l'index clustered aprés ?

    Pour l'instant, après avoir tracé toutes les requêtes que j'ai vu passer sur 2 tables (c'est long !!!!) puis analysé le plan d'exécution de ces requêtes, toutes utilisent le seek index sur l'index clustered !!!! Dans ce cas je ne vois pas trop l'intérêt de garder l'index non-clustered, qu'en pensez-vous ?

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 761
    Points : 52 547
    Points
    52 547
    Billets dans le blog
    5
    Par défaut
    Mais lors d'une recherche par index non clustered n'y a-t'il pas toujours une recherche dans l'index clustered aprés ?
    Tout dépend si l'index est couvrant ou non pour la requête. Vous pouvez auditer son utilisation à l'aide de DMV.
    Lisez l'article que j'ai écrit à ce sujet : http://sqlpro.developpez.com/.cours/quoi-indexer/

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

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

Discussions similaires

  1. Optimisation base de données SQL Server 2000: Indexation
    Par Mouckson dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 22/05/2012, 01h39
  2. Accès au SQL Server Agent pour un user non "sysadmin"
    Par HighSam dans le forum Administration
    Réponses: 2
    Dernier message: 05/08/2011, 16h03
  3. SQL Server 2008 - index unique ou non unique ?
    Par drouhne dans le forum Administration
    Réponses: 3
    Dernier message: 12/10/2010, 15h45
  4. [SQL SERVER 2000] Base de donnée non relationnelle
    Par Phenomenium dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 31/03/2008, 10h39
  5. Réponses: 9
    Dernier message: 28/07/2006, 17h38

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