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 :

Requête très lente [11gR2]


Sujet :

PL/SQL Oracle

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2009
    Messages : 99
    Points : 61
    Points
    61
    Par défaut Requête très lente
    Bonjour,

    j'ai crée une procédure sous oracle11g mais son exécution prend 1min et c'est très lent .
    ci-joint le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     begin
    delete isf.t20 where LIBENSBQ = usr;
    insert into isf.t20(dat,cobef,cp,mont20r,cod20r,LIBENSBQ)
    (select dat,cobef,cp,round(mont20r/1000),cod20r ,user
    from bilan20r.tmont20r  --lourdeur      -- a tester
    where to_char(dat,'yyyy') = to_char(dt,'yyyy') )  ;
     
    end ;

    Merci

  2. #2
    Membre du Club
    Homme Profil pro
    ingénieur d'étude PL/SQL
    Inscrit en
    Octobre 2002
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur d'étude PL/SQL

    Informations forums :
    Inscription : Octobre 2002
    Messages : 53
    Points : 69
    Points
    69
    Par défaut
    bonjour,
    donnes les parametres que tu passes à ta procedure.
    quelle est le volume que tu delete et pareil pour l'insert.
    je crois comprendre que tu fais un insert pour une année complete ??? (to_char(dat,'yyyy')) donc grosse volumetrie ???
    as tu des index sur la colonne LIBENSBQ
    a+

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2009
    Messages : 99
    Points : 61
    Points
    61
    Par défaut
    bonjour,

    oui nous avons crée un index sur ce champ là.

    Merci

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Si vous avez un index sur la colonne dat, il faut écrire votre requête ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    BEGIN
     
        DELETE FROM isf.t20
         WHERE LIBENSBQ = usr;
     
        INSERT INTO isf.t20 (dat, cobef, cp,mont20r, cod20r, LIBENSBQ)
        SELECT dat, cobef, cp, round(mont20r / 1000), cod20r ,user
          FROM bilan20r.tmont20r 
         WHERE dat >= trunc(dt,'yyyy')
           AND dat <  trunc(add_months(dt, 12),'yyyy');
     
    END;
    /

  5. #5
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 32
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par sara_sihem Voir le message
    bonjour,

    oui nous avons crée un index sur ce champ là.

    Merci
    Bonjour,

    L'index peut t'aider dans le "delete" (ramener les enregistrements à supprimer), mais pas dans l'ordre "insert" (restructurer les enregistrement en tenant compte de l'INDEX).

  6. #6
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2009
    Messages : 99
    Points : 61
    Points
    61
    Par défaut
    Bonjour,

    Merci, j'ai remarqué une nette amélioration dans le temps d'exécution.

    Merci

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

Discussions similaires

  1. Requête trés lente > 20min
    Par ahmed. dans le forum Requêtes
    Réponses: 3
    Dernier message: 21/01/2013, 17h41
  2. Requête trés lente
    Par mercure07 dans le forum SQL
    Réponses: 22
    Dernier message: 29/03/2012, 18h46
  3. [AC-2007] Requête très lente depuis table externe en BD SQLServer2008
    Par alfhcg dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 28/10/2011, 00h19
  4. Requête très lente
    Par Korben-Dallas dans le forum Requêtes
    Réponses: 10
    Dernier message: 20/07/2011, 14h07
  5. Requêtes très lentes malgré peu de données
    Par The zxeno prophet dans le forum Requêtes
    Réponses: 8
    Dernier message: 12/01/2011, 14h09

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