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

Administration Oracle Discussion :

problème de charge CPU SUR ORACLE


Sujet :

Administration Oracle

  1. #21
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2003
    Messages : 412
    Points : 1 326
    Points
    1 326
    Par défaut
    Moi je vois le pb autrement

    Tu fais un delete basé sur une requete qui peut te renvoyer 40000 lignes.

    Tu généres donc des informations dans ton cache puisqu'il est obligé de stocker les lignes correspondantes

    Ensuite tu lances le delete qui lui génére des informations de redos et des informations dans les RBS

    Le fait que tu effaces 40000 lignes peut occuper énormément de temps procésseur.

    Il faudrai vérifié en dernier recours qu'il n'y a pas de trigger sur cette table.

    Ensuite si il n'y a rien et que les solutions basique ne passent pas nous utiliserons une autre méthode.

  2. #22
    Futur Membre du Club
    Inscrit en
    Mai 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    Je suis d'accord que cela peut occuper beaucoup de temps machine, surtout sur ce type de machine.

    mais dela a prendre plus de deux heure pour supprimer mes enregistrements ...

    Point de vu trigger, si j'en ai une, j'ai un trigger d'incrementation.

    j'essaie ta méthode et je te tiens au courant
    Crash is Back

  3. #23
    Futur Membre du Club
    Inscrit en
    Mai 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    je ne sais pas si cela ne pourrai pas venir du SGA_MAX_SIZE ou tout simplement a cause du dump qui m'aurai suppimer certaine contrainte d'intergriter.

    J'ai été voir sur www.orafaq.com mais je ne sais pas trop ou chercher, aparament le problème c'est deja posé mais il me dépasse.

    Il est fort possible que je me trompe
    Crash is Back

  4. #24
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2003
    Messages : 412
    Points : 1 326
    Points
    1 326
    Par défaut
    As tu essayés ma méthode?

  5. #25
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Citation Envoyé par crasho007
    Point de vu trigger, si j'en ai une, j'ai un trigger d'incrementation.
    pouvez-vous désactiver ce trigger avant le DELETE et le réactiver après ?
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  6. #26
    Futur Membre du Club
    Inscrit en
    Mai 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par helyos
    As tu essayés ma méthode?
    oui j'ai essayer, mais rien ne change ca deviens vraiment lassant...

    Citation Envoyé par SheikYerbouti
    pouvez-vous désactiver ce trigger avant le DELETE et le réactiver après ?
    Enfin, enfin, enfin
    MERCI MERCI ET ENCORE MERCI... tout ca a cause d'un malheureux trigger d'incrémentation...

    En tout cas, merci encore pour tout vos conseils, je ne suis pas expert en plus sur oracle loin de la.
    Crash is Back

  7. #27
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2003
    Messages : 412
    Points : 1 326
    Points
    1 326
    Par défaut
    Donc ca viendrais du trigger????

    Pourrais tu coller le code du trigger stp?

  8. #28
    Futur Membre du Club
    Inscrit en
    Mai 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    Voici le code du trigger :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Create or replace trigger TABLE 1 before insert on table 1
     For each row
     begin
        select ID_SEQ.nextval INTO :new.IDENTIFIANT from dual;
     End;
    Voila, dis moi pourquoi voulais tu ce trigger ?

    [Balises code ajoutées par Helyos]
    Crash is Back

  9. #29
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2003
    Messages : 412
    Points : 1 326
    Points
    1 326
    Par défaut
    Je ne comprends pas pourquoi ca ferai ralentir la chose .....

  10. #30
    Futur Membre du Club
    Inscrit en
    Mai 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    Ba moi non plus, je ne comprend pas, pourquoi en supprimant ce trigger ( le seul que j'ai de toute facon) cela a permi de ne plus faire ralentir le serveur.

    Je croix qu'également le dump de la base qui à été faite a du être en cause également du problème, dump qui aurai supprimer certaine contrainte d'intégriter
    Crash is Back

  11. #31
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    l'exécution d'un trigger ralenti l'opération, et ce, même s'il ne contient qu'une instruction Null; !!!

    Dans les traitements en masse, il faut factoriser ce temps supplémentaire avec le nombre de lignes traitées.
    La technique de base consiste donc a évaluer le bon fonctionnement en désactivant les triggers le temps de ces opérations de gros volumes.
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  12. #32
    Futur Membre du Club
    Inscrit en
    Mai 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    En tout cas, je le serai pour la prochaine fois...

    Je à remercier personellement SheikYerbouti, helyos et orafrance pour tous leur conseils.
    Crash is Back

  13. #33
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2003
    Messages : 412
    Points : 1 326
    Points
    1 326
    Par défaut
    Oki je comprends bien ce que tu dis, mais le trigger ne fait qu'un test (il vérifie si c'est pas un insert)

    Donc forcement cela rajoute une charge supplémentaire mais je pensais pas que cela pouvait autant impacter les performances avec un simple test .....

  14. #34
    Futur Membre du Club
    Inscrit en
    Mai 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    En fait cela inpact considerablement le temps machine, car, j'ai 2 instances qui fonctionne sur mon serveur et je n'ai pas eu les fond suffisant pour prendre un serveur avec de meilleur configuration...

    Il faut savoir que les deux instances sont de taille équivalente et il est fort possible qu'elles soient trop importante pour la machine sur laquelle elle tourne...
    Crash is Back

  15. #35
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Autre observation qui n'a rien à voir avec la choucroute (mais qui pourrais bien sentir la saussice brûlée dans certains cas!)

    votre trigger en insert contient le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT ....NEXTVAL from DUAL ;
    Il faut savoir que tout curseur implicite comme celui-ci n'est libéré qu'en fin de transaction (Commit ou Rollback principalement)

    Si donc, un jour vous tentez non pas de supprimer mais d'insérer des lignes en masse, vous allez vous retrouver avec autant de curseurs ouverts que de lignes en insertion ! ( attention au navrant message TOO MUCH OPEN CURSORS...)

    il vaut mieux prendre l'habitude de coder des curseurs explicites que vous fermez naturellement vous-même

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Declare
      Cursor C_NEXT IS
      Select ...NEXTVAL From Dual ;
    ...
    Begin
      Open C_NEXT ;
      Fetch C_NEXT Into ... ;
      CLose C_NEXT ;
    End;
    Vous tiendrez la route dans tous les cas !
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    bien vu l'aveugle... c'est vrai que c'est le genre de blague qui peut effectivement poser probléme

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [AC-2003] Problème migration table Access sur Oracle
    Par rebeke dans le forum VBA Access
    Réponses: 0
    Dernier message: 14/03/2012, 11h24
  2. Pb de charge CPU sur SYBASE ASE 15.0.3 ESD1
    Par jeeps64 dans le forum Adaptive Server Enterprise
    Réponses: 11
    Dernier message: 04/12/2009, 17h03
  3. Saturation CPU sur ORACLE 9.2 dans une View
    Par jfvisquet dans le forum SQL
    Réponses: 3
    Dernier message: 20/10/2008, 14h14
  4. Problème sur Oracle Toolbox
    Par Doctor Z dans le forum Oracle
    Réponses: 9
    Dernier message: 09/11/2004, 08h48
  5. Réponses: 9
    Dernier message: 17/01/2004, 10h51

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