1. #1
    Membre régulier
    Inscrit en
    février 2004
    Messages
    307
    Détails du profil
    Informations forums :
    Inscription : février 2004
    Messages : 307
    Points : 111
    Points
    111

    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 SGBDR & SQL, spécialiste Microsoft SQL Server
    Inscrit en
    mai 2002
    Messages
    17 893
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert SGBDR & SQL, spécialiste Microsoft SQL Server
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 17 893
    Points : 41 796
    Points
    41 796
    Billets dans le blog
    1

    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...
    * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *

  3. #3
    Membre régulier
    Inscrit en
    février 2004
    Messages
    307
    Détails du profil
    Informations forums :
    Inscription : février 2004
    Messages : 307
    Points : 111
    Points
    111

    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 SGBDR & SQL, spécialiste Microsoft SQL Server
    Inscrit en
    mai 2002
    Messages
    17 893
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert SGBDR & SQL, spécialiste Microsoft SQL Server
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 17 893
    Points : 41 796
    Points
    41 796
    Billets dans le blog
    1

    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 : 52
Taille : 200,9 Ko
    P746 et suivantes....

    Nom : Couverture livre SQL server Eyrolles.jpg
Affichages : 46
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...
    * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *

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