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 :

Index cluster obligatoire ?


Sujet :

Administration SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2004
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 477
    Par défaut Index cluster obligatoire ?
    Bonjour à tous,

    J'ai eu un problème de performance sur une de mes tables cette semaine.
    En y regardant de plus près je me suis rendu compte que sur cette table je n'avais que des index NONCLUSTER.
    J'ai ajouté un index CLUSTER et depuis cela fonctionne nettement mieux.

    Mais je ne me l'explique pas ... Est ce qu'il faut obligatoirement un index CLUSTER sur une table dans SQL ?

  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
    22 001
    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 : 22 001
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par Pfeffer Voir le message
    Mais je ne me l'explique pas ... Est ce qu'il faut obligatoirement un index CLUSTER sur une table dans SQL ?
    Non... Mais le moteur ayant été conçu pour tirer le meilleur partit des index cluster, s'en priver serait folie....

    Encore faudrait-il que cet index clustered soit optimal, c'est à dire :
    • UNIQUE
    • NOT NULL
    • INVARIANT (aucun UPDATE)
    • CONCIS (une seule colonne, maximum 64 bits)
    • MONOTONE (les valeurs nouvelles sont toujours croissantes ou décroissantes)

    Dans tous les autres cas, c'est moins bon...

    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 éclairé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2004
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 477
    Par défaut
    Très bien. Je m'en suis rendu compte de cette folie ...
    Par contre, est ce que mes index NONCLUSTER utilisent l'index CLUSTER ?

  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
    22 001
    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 : 22 001
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par Pfeffer Voir le message
    Très bien. Je m'en suis rendu compte de cette folie ...
    Par contre, est ce que mes index NONCLUSTER utilisent l'index CLUSTER ?
    Sous SQL Server oui. Un index NONCLUSTERED fait référence à une ligne logique de la table par le biais de la valeur de la clef clustered.
    C'est pour cela qu'il vaut mieux qu'elle soit UNIQUE et NOT NULL, cas sinon SQL Server rajoute une information de déduplication appelé UNIQUIFIER (et non UNIQUIDENTIFIER).

    Je vous invite à lire mon livre à ce sujet :
    Nom : SQL Server Brouard Eyrolles Index Clustered.jpg
Affichages : 309
Taille : 200,9 Ko
    P746 et suivantes....

    Nom : Couverture livre SQL server Eyrolles.jpg
Affichages : 581
Taille : 105,0 Ko

    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. [SQL SERVER 2K] Index clustered et non clustered
    Par dens19 dans le forum Administration
    Réponses: 3
    Dernier message: 26/03/2009, 19h38
  2. Désactivation manuelle d'un index cluster pour quoi faire ?
    Par dily0403 dans le forum Administration
    Réponses: 4
    Dernier message: 24/10/2008, 22h42
  3. Index CLuster sur Mysql ?
    Par genio dans le forum MySQL
    Réponses: 3
    Dernier message: 13/08/2008, 16h19
  4. [ASE]index cluster sybase
    Par bribri dans le forum Adaptive Server Enterprise
    Réponses: 3
    Dernier message: 04/02/2008, 12h01
  5. Réponses: 3
    Dernier message: 25/10/2006, 17h45

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