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 :

[SQL2005][TSQL] Comment définir l'ordre des colonnes dans l'indexation ?


Sujet :

MS SQL Server

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13
    Points : 11
    Points
    11
    Par défaut [SQL2005][TSQL] Comment définir l'ordre des colonnes dans l'indexation ?
    bonjour,

    j'ai par exemple une table A sur laquelle je veux créer un index composite (index portant sur plusieurs colonnes).

    Pour définir l'ordre d'indexation, doit-on partir de l'élément le plus fin pour remonter à l'élément le moins fin ?

    Je m'explique...

    Supposons que la table A possède les colonnes [Mois](élément le plus fin), [Annee] (élément le moins fin) et que l'index que je veux créer porte sur ces deux colonnes et se nomme IX_A


    Ma syntaxe devra t'elle être :

    create clustered index dbo.IX_A on A(mois,annee) with fill_factor=90

    ou bien

    create clustered index dbo.IX_A on A(annee,mois) with fill_factor=90


    ??

    Merci d'avance pour vos réponses

  2. #2
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 75
    Points : 84
    Points
    84
    Par défaut
    Si la première colonne d’un index composite n’apparaît pas dans la clause where, l’index n’est pas utilisé. Il faut donc être sure que le mois et l'année seront utilisés simultanément.
    Pour l'ordre il faut les classer dans l'ordre juste euh non, l'ordre décroissant de
    sélectivité.


    Toujours regarder le très bon site de sqlpro
    http://sql.developpez.com/optimiser/

    Un index créé sur deux colonnes ne peut pas être utilisé pour filtrer la seconde colonne car il stocke en principe les données sur la concaténation des deux colonnes. Restructurez les index en évitant les index composites.

Discussions similaires

  1. Ordre des colonnes dans in Index
    Par dev-man dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 20/09/2007, 15h22
  2. Réponses: 2
    Dernier message: 25/07/2007, 13h39
  3. Ordre des colonnes dans une table
    Par c.langlet dans le forum Administration
    Réponses: 3
    Dernier message: 16/05/2007, 18h39
  4. [vb6] Changez dynamiquement ordre des colonnes dans listview ?
    Par sun19 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 26/10/2006, 16h50
  5. [C#] ordre des colonnes dans un datagrid
    Par enfants dans le forum Windows Forms
    Réponses: 7
    Dernier message: 10/06/2006, 01h35

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