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

Oracle Discussion :

Verrous Foreign Key et Index


Sujet :

Oracle

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 127
    Points : 49
    Points
    49
    Par défaut Verrous Foreign Key et Index
    Bonjour,

    En Oracle 9.2.05 sur AIX nous avons une application qui génère beaucoup de verrous, j'aimerais vérifier que chaque foreign key possède un index, puisque cette règle est fortement conseillée.
    Pouvez vous me dire comment faire pour vérifier cette correspondance foreign key - index?
    Merci

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    260
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 260
    Points : 281
    Points
    281
    Par défaut Vérifier si les clés étrangères sont indexées
    Bonjour,

    On peut faire cela en PlSql ou en sql
    La liste des clés étrangères est dans la table user_constraints (constraint_type = 'R')
    La liste des champs d'une clé est dans la table user_con_columns

    La liste des indexes est dans la table user_indexes
    La liste des colonnes des indexes est dans la table user_ind_columns

    Essai de code en SQL (non testé) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    select con.table_name, cco.column_name 
    from user_constraints con, user_con_columns cco
    where con.constraint_type = 'R' and cco.constraint_name = con.constraint_name
    minus
    select idx.table_name, ico.column_name
    from user_indexes idx, user_ind_columns ico
    where ico.index_name = idx.index_name
    Ca marchera si les index ne sont constitués que d'une colonne.

    Pozzo

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 127
    Points : 49
    Points
    49
    Par défaut
    Bonjour,

    Merci beaucoup.
    Une petite précision, car je ne maitrise pas vraiment le code
    Est ce que cela ramène les colonnes de FK sans index associés? car ce sont surtout celles ci que je voudrait mettre en évidence.

  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
    Regarde ici. Il y a un bon vieux script pour résoudre ton problème.

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

Discussions similaires

  1. Foreign Key et Index
    Par cfeltz dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 07/09/2007, 14h20
  2. foreign key et index
    Par sebos63 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 22/05/2007, 17h51
  3. foreign key non indexé
    Par olivanto dans le forum Oracle
    Réponses: 10
    Dernier message: 21/03/2007, 15h20
  4. Liste des foreigns key non indexés
    Par soazig dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/05/2006, 17h50
  5. FOREIGN KEY et INDEX
    Par rsc dans le forum SQL
    Réponses: 2
    Dernier message: 19/07/2004, 09h06

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