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 :

INSERT et INDEXE


Sujet :

Oracle

  1. #1
    Membre averti Avatar de Wurlitzer
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 469
    Points : 408
    Points
    408
    Par défaut INSERT et INDEXE
    Bonjour,

    J'ai une base avec une grosse table (11 Millions de ligne, 56 Colonnes, 15 Indexes). Lorsque je fais un insert j'ai un nombre important de Buffer Gets qui plombe les perfs. J'imagine que c'est a cause de la mise a jour des Indexes ?

    Est ce bien cela ?

    Comment faire pour améliorer les performances ? Est ce que le partionnement changerait quelque choses ?

    Le mieux serait j'imagine de dropper les indexes inutiles mais comment faire pour les identifier. Je suis en 8.1.7 et donc sans l'option MONITORING.

    Merci de votre aide

  2. #2
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    Tu peux essayer de partitionner l'index mis à jour lors de l'insert déjà. C'est le plus simple à vérifier dans un premier temps

    Après tu peux rechercher dans v$sqlarea les requêtes qui utilisent la table, un coup d'explain plan sur toutes les requêtes et un recensement des indexes utilisés... y'a plus qu'à comparer avec ceux qui existent mais ne servent pas

  3. #3
    Membre actif
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2005
    Messages
    250
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 250
    Points : 277
    Points
    277
    Par défaut
    Citation Envoyé par Wurlitzer
    Lorsque je fais un insert j'ai un nombre important de Buffer Gets qui plombe les perfs. J'imagine que c'est a cause de la mise a jour des Indexes ?
    Est ce bien cela ?
    Il y a de fortes chances oui...
    Comment faire pour améliorer les performances ? Est ce que le partionnement changerait quelque choses ?
    Oui si tu utilise un partitionement par tranches de valeur (range)et que tu es capable de préciser la partition lorsque tu insères. Il faudrait que tes index soient partitionnés eux aussi de la même façon que ta table pour que cela soit efficace (ainsi seul les parties des index correspondant à ta partition devron être reconstruites)
    Le mieux serait j'imagine de dropper les indexes inutiles mais comment faire pour les identifier. Je suis en 8.1.7 et donc sans l'option MONITORING.
    Pas sur que cela améliore beaucoup les choses... Sauf si tu as vraiment bcp d'index inutiles.
    Tu peux lister les plans d'execution de chacun des select qui sont faits sur la table et voir ceux qui sont le plus fréquemment utilisés. Ca devrait te donner une base de travail.

Discussions similaires

  1. [Performance] Insertion massive et index ?
    Par brolon dans le forum SQL
    Réponses: 1
    Dernier message: 23/01/2009, 11h04
  2. [MySQL] Insert sur un index de form select
    Par razorlok dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 19/11/2008, 15h23
  3. Insertion dans plusieurs table avec un index commun
    Par irongomme dans le forum Requêtes
    Réponses: 3
    Dernier message: 12/10/2007, 12h41
  4. Clustered index : ralentit l'INSERT ?
    Par balmeyer dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 19/09/2007, 14h40
  5. Réponses: 3
    Dernier message: 25/10/2006, 18h45

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