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 :

Etude de l'indexation.


Sujet :

MS SQL Server

  1. #1
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Points : 1 745
    Points
    1 745
    Par défaut Etude de l'indexation.
    Sur notre fameuse base Aloès de 50 giga avec des requêtes de 30 secondes, nous avons décidé de réécrire le top 10 des plus lentes. C'est le travail de Simon, le concepteur. J'ai seulement identifié les requêtes avec la trace duration.

    Concernant mon travail, j'essaie d'optimiser la base de dev par indexation. En étudiant avec le Manager de SQL Serveur 2005 le serveur 2000, j'ai pu noter que les clef étrangères n'était pas indexé.
    Par conséquent, je crée un index unitaire pour chaque clé étrangère de façon systèmatique. Ca me parait une idée prometeuse.

    Ma question arrive : Dans certaines tables, nous avons plusieurs clés étrangères. Existe t'il des cas où il est nécessaire de créer des index de clé étrangère multicolonne ?

    Merci pour vos réponses.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 240
    Points : 210
    Points
    210
    Par défaut
    Oui.

    Mais c'est vos requêtes SQL qui donneront la réponse ainsi que l'architecture de votre bases de données.

    Si on a une requête du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT t1.*
    FROM MaTable1 as t1
    INNER JOIN MaTable2 as t2
    ON t1.MaColonne1 = t2.MaColonne1
    AND t1.MaColonne2 = t2.MaColonne2
    On pourrait créer un index composé sur MaColonne1 et MaColonne2.

    Attention, les index composés ont tendance à se fragmenter plus vite, j'utilise alors un taux de remplissage plus petit.

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 249
    Points : 1 745
    Points
    1 745
    Par défaut indexation automatique.
    Finalement, j'ai découvert l'existence d'un tuning wizard sur sql serveur 2000. J'ai donc utilisé cet outil pour optimiser ma trace.
    De 10 requetes s'étalant entre 30 et 18 secondes, nous sommes passe à 3 requete allant de 30 à 14 sec. Il a cree 2 index cluster, 2 index non cluster et une dizaine de stats. Gain d'apres l'outil sur l'ensemble de la trace : 21%. C'est assez magique!
    Il me reste la piste des clés étrangères, non utilisé par l'outil, pour améliorer encore le temps de réponse.

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

Discussions similaires

  1. Message 'Duplicate index entry'
    Par Poulou dans le forum Administration
    Réponses: 13
    Dernier message: 04/05/2004, 14h57
  2. Index n'est pas a jour
    Par touhami dans le forum Paradox
    Réponses: 5
    Dernier message: 11/12/2002, 14h47
  3. [Technique] Intérêt des index
    Par ddams dans le forum Décisions SGBD
    Réponses: 10
    Dernier message: 04/11/2002, 15h11
  4. [Technique] Index, comment font les moteurs de recherche ?
    Par bat dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 25/10/2002, 15h41
  5. Requête imbriquée et indexes INTERBASE
    Par vadim dans le forum InterBase
    Réponses: 2
    Dernier message: 06/09/2002, 16h15

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