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

SQL Oracle Discussion :

INDEX sur une table avec peu de valeurs discriminantes


Sujet :

SQL Oracle

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 15
    Points : 11
    Points
    11
    Par défaut INDEX sur une table avec peu de valeurs discriminantes
    Je doute un peu que c'est une question qui a déjà été posé sur le forum.

    J'ai une table avec une très grande volumétrie. J'ai deux colonnes sur cette table.

    La première colonne ne prend que trois valeurs distinctes.

    La deuxième colonne est beaucoup plus diversifiés, juste quelques doublons et triplets.

    Afin d'optimiser une requête qui utilise les deux colonnes, est-il pertinent de rajouter un index
    sur la deuxième colonne.

    S'il est possible d'apporter une justification, je suis preneur.

    Merci beaucoup,

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 386
    Points
    18 386
    Par défaut
    Pouvez-vous nous en dire plus : nombre de lignes, structure de votre table, requête qui attaque cette dernière ?

    Mais à priori, créer un index qui constitue l'ensemble de la table... revient à reconstruire la table dans l'index.

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 38
    Points : 47
    Points
    47
    Par défaut Methode de DeBourrin
    A ne pas faire en prod hein
    1) Visualiser le plan d'execution
    2) Mettre l'index
    3) Et revisualiser le plan d'execution
    S'il n'a pas changé bah c'est que ca sert a rien

  4. #4
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Sans avoir la requête en question mon conseil est de ne rien faire : simple et économique.
    Si après avoir crée l’index vous oubliez de calculer les statistiques pour cette index revenez à ma première solution.

  5. #5
    Expert éminent
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 821
    Points : 6 443
    Points
    6 443
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Si le prédicat sur la deuxième colonne est très selectif, alors oui un index peut être utile.
    Mais alors, y rajouter la première colonne (index sur les 2 colonnes) sera encore plus performant:
    -> 3 fois plus selectif
    -> et surtout, pas besoin d'aller lire la table vu que tout se trouve dans l'index

    Et alors, si on se retrouve à avoir toutes les colonnes de la table indexées, pourquoi pas penser à une IOT (index organized table)

    Evidemment, celà ne dépends pas que de cette requête, mais du reste de l'appli (un index de plus ralentit les insert/update), anisi que lde la taille des colonnes.

    Cordialement,
    Franck.

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/10/2013, 15h50
  2. Requête sur une table avec un index FULLTEXT
    Par Marmotton76 dans le forum Requêtes
    Réponses: 2
    Dernier message: 08/10/2012, 14h35
  3. Index sur une table avec des données temporaires
    Par mioux dans le forum Développement
    Réponses: 5
    Dernier message: 12/01/2012, 17h05
  4. MySQL - Probleme avec 2 index sur une table
    Par xG-Hannibal dans le forum Outils
    Réponses: 7
    Dernier message: 31/03/2006, 14h08
  5. Boucler sur une table pour renommer des valeurs
    Par webwhisky dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 03/01/2006, 14h19

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