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

PL/SQL Oracle Discussion :

optimisation procedure stocké


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 27
    Par défaut optimisation procedure stocké
    bonjours;
    je cherche a optimiser le temps de réponse des prodedure stocké sous oracle 10g?
    en fait parce que j'ai une base un peu charger des donnés,ce qui me provoque une attente de +1h pour une seul procédure ;

    bon j'ai bien évidement optimiser au maximum le code(éliminer les curseurs,....),mai le probleme reste lui meme;


    merci!!!!

  2. #2
    Invité
    Invité(e)
    Par défaut
    Avec autant de détails, ça va être difficile de t'aiguiller sur une piste !
    Pour commencer, tes procédures stockées ne contiennent pas de curseurs ?

  3. #3
    Expert confirmé 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
    Par défaut
    Citation Envoyé par karimoos Voir le message
    ...
    en fait parce que j'ai une base un peu charger des donnés,ce qui me provoque une attente de +1h pour une seul procédure ...
    Ce n'est la base "un peu chargé des données" mais plutôt l'algorithme codé dans la procédure. Donc ça ira plus vite avec la procédure.

  4. #4
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 27
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    CREATE OR REPLACE PROCEDURE get_residence IS
     
    	  v_idres    number(1);
    	  v_number_of_lines number(30);
     
     
    CURSOR  RESIDENCE_CUR IS
          SELECT IDTIER,IDRESIDENCE
            FROM TIER
           WHERE IDRESIDENCE IS NULL AND TYPEPERSONNE = 'PP';
     
     
    BEGIN
     
    FOR RESIDENCE_REC IN RESIDENCE_CUR
       LOOP
     
          IF RESIDENCE_REC.IDRESIDENCE IS NULL THEN v_idres := 1;
    	   ELSE v_idres := 0;
           END IF;
     
    	   SELECT COUNT(*) INTO v_number_of_lines
           FROM   NFIABILISATION 
           WHERE  IDTIER=RESIDENCE_REC.IDTIER;
     
    	  IF v_number_of_lines !=0 THEN
     
    	   UPDATE NFIABILISATION SET RESIDENCE=v_idres 
    	   WHERE IDTIER=RESIDENCE_REC.IDTIER;
     
     
    	  ELSE
           INSERT INTO nfiabilisation
                      (IDTIERAFIAB,idtier,residence,TYPEPERSONNE)                 
               VALUES (nfiabilisation_seq.NEXTVAL,residence_rec.idtier,v_idres,'PP');
     
     
          END IF;
     
    	  EXIT WHEN RESIDENCE_CUR%NOTFOUND;
       END LOOP;
     commit;
     
    END get_residence;
    /
    voici une de mes procedure pour détaillé un petit peu!!
    desolé Jerome_Mtl mais juste un cursor par procedure.

  5. #5
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 27
    Par défaut
    la logique du procédure est le suivant :

    la table tier contient l'ensemble des clients avec leurs cordonnées (nom,cin,...)
    donc la procedure selectionne le tier dont l'un de ces cordonné est null,et le met dans la table nfiabilisation avec valeur 1;

    si le tier existe deja c'est juste la mis jour qui sera faite.

    je sais pas si j'ai bien clarifier les chose pour vous!!!

  6. #6
    Invité
    Invité(e)
    Par défaut
    Votre procédure pourrait aisément se passer de votre curseur justement.
    Et ça serait une optimisation.

  7. #7
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 27
    Par défaut
    Citation Envoyé par Jerome_Mtl Voir le message
    Votre procédure pourrait aisément se passer de votre curseur justement.
    Et ça serait une optimisation.
    j'ai pas bien saisi ce que vous voulez dire.

  8. #8
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    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 454
    Par défaut
    Je dirai même qu'il n'y a pas besoin de procédure.

  9. #9
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 27
    Par défaut
    Citation Envoyé par Waldar Voir le message
    Je dirai même qu'il n'y a pas besoin de procédure.
    nn moi j'ai besoin d'un code stocké sur le disque afin de la recuperer tant que je veux.

Discussions similaires

  1. [Optimisation] Procedure stocké, index
    Par SiOuZ dans le forum Développement
    Réponses: 1
    Dernier message: 10/03/2011, 10h31
  2. optimisation procedure stocké
    Par karimoos dans le forum PL/SQL
    Réponses: 4
    Dernier message: 14/05/2010, 13h58
  3. [Procedure Stockée] Optimisation
    Par lapanne dans le forum MS SQL Server
    Réponses: 13
    Dernier message: 28/06/2007, 09h38
  4. procedure stocke non optimise.
    Par arnololo dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 01/08/2005, 19h00
  5. procedure stocke non optimise.
    Par arnololo dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 02/02/2005, 16h34

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