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

Langage SQL Discussion :

Index imbriqués. et le système interne de gestion des SGBD


Sujet :

Langage SQL

  1. #1
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut Index imbriqués. et le système interne de gestion des SGBD
    Bonjour,

    Je suis en train de modéliser quelques applications à l'aide d'un outil graphique.

    Dans ma structure, j'ai des cités régis par un et un seul seigneur. Chaque cité appartient à une et une seule province.

    Logiquement, je me retrouve à avec une table de ce style :
    cite(id_cite,id_seigneur,id_province,lib_cite,etc...)

    Donc, id_cite est la clef primaire. id_seigneur et id_province sont les clefs etrangères respectives des tables seigneur et province.

    Comme je ferais régulièrement une recherche des cités d'un seigneur donné, j'ai mis un index sur le champ id_seigneur. De même je listerais les cités d'une province, donc pour éviter là aussi un scan de la table, je place un index sur la table province.

    Hier, nous avons changé les règles du jeu. Chaque seigneur ne pourra contrôler qu'une cité par province. Donc je place un index unique sur les champs id_province,id_seigneur de cette fameuse tabl cite.

    Tout marche, mais lors de la vérification de mon modèle, je lis un avertissement comme quoi mes index sont imbriqués.

    Dois-je comprendre que mon index sur id_seigneu et id_cite rend obsolète les deux index portant chacun sur un seul texte ?
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  2. #2
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    L'index (Id_Seigneur, Id_Province) rend inutile l'index sur (Id_Seigneur), mais pas celui sur (IdProvince)
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  3. #3
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut
    Citation Envoyé par pgibone
    L'index (Id_Seigneur, Id_Province) rend inutile l'index sur (Id_Seigneur), mais pas celui sur (IdProvince)
    Je crois comprendre.
    Comme l'index (Id_Seigneur, Id_Province) commence par id_seigneur, il rend inutile l'index seul sur id_seigneur. Mais pas celui sur id_province. C'est bien cela ? (Cela me semble logique finalement)
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  4. #4
    Membre expert
    Avatar de Alexandre T
    Homme Profil pro
    Chef de projets AMO
    Inscrit en
    Mai 2002
    Messages
    1 213
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets AMO
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 213
    Points : 3 001
    Points
    3 001
    Par défaut
    Je viens de vérifier avec mon utilitaire. Cela fonctionne. Merci bien
    Alexandre Tranchant
    Chef de projet AMO pour le Cerema.
    Retrouvez mes articles sur PHP et Symfony

  5. #5
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 222
    Points : 19 551
    Points
    19 551
    Billets dans le blog
    25
    Par défaut
    Votre compréhension est correcte du moment que l'on parle d'index B-TREE. Ce n'est pas le cas pour tous les types d'index (ex. les BIT-WISE).
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/03/2010, 14h14
  2. [Conception] classes internes ou gestion des events
    Par TTKiBosse dans le forum Général Java
    Réponses: 2
    Dernier message: 06/12/2006, 18h25
  3. [Oracle 9i] gestion des indexs
    Par Herveg dans le forum Oracle
    Réponses: 14
    Dernier message: 18/05/2006, 12h00
  4. Gestion des indexes
    Par tomca dans le forum Oracle
    Réponses: 6
    Dernier message: 17/02/2006, 10h27
  5. Application international (Gestion des dates)
    Par vsavoir dans le forum C++Builder
    Réponses: 2
    Dernier message: 01/08/2005, 10h22

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