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

Macros et VBA Excel Discussion :

Performance Excel - Oracle


Sujet :

Macros et VBA Excel

  1. #1
    Membre chevronné Avatar de binouzzz19
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    385
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 385
    Par défaut Performance Excel - Oracle
    Bonjour tout le monde !

    J'ai actuellement un problème de performance sur Excel.
    J'ai en effet, une boucle qui parcours 2000 lignes puis pour chaque ligne on reparcours ces 2000 lignes pour faire des comparaisons. De fait, ce traitement prend un temps fou (genre 5h). Si je mettais ces données (lignes) dans Oracle, au niveau performance, cela irait-il plus vite ?

    Merci de vos réponses et dites moi si je n'ai pas été assez clair.

    Cordialement.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    C'est peut-être ta méthode de comparaison qui n'est pas optimisée sous Excel.

    Par contre sous Oracle, à mon avis il va falloir utiliser du PL/SQL pour faire ces comparaisons (c'est un mélange entre du code tel que des boucles) et du SQL.

    A mon avis cela ira plus vite sous Oracle, mais je ne suis pas du tout un spécialiste, j'ai de très très vagues notions

    Philippe

  3. #3
    Membre chevronné Avatar de binouzzz19
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    385
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 385
    Par défaut
    Merci de ta réponse.

    Non, j'ai regardé le code, et je pense bien que c'est optimisé !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    For k = 0 To UBound(lp.KAJ)
          'Série de tests ... if elseif endif
          For l = 0 To UBound(lp.KAJ)
                If l <> k And Len(lp.KAJ(k)) <= 5 And _
                   Len(lp.KAJ(l)) <= 5 And _
                   Left(lp.KAJ(k),Len(lp.KAJ(l))) = lp.KAJ(l) Then
                     'Série de tests ... if elseif endif
                End If
          Next l
    Next k
    Je connais PL/SQL. Je me demande juste en gros si un curseur dans Oracle et mieux qu'une boucle dans une boucle sous Excel.

    Cordialement.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Re

    En plus tu travail dans un tableau et non dans une feuille, ce qui est l'idéal.

    Vu que tu connais le PL/SQL, je t'invite à faire le test, à mon avis tu seras gagnant.

    Un retour du résultat sera très intéressant.

    Philippe

  5. #5
    Membre chevronné Avatar de binouzzz19
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    385
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 385
    Par défaut
    Je ne suis pas mon propre chef de projet donc je ne sais pas si je pourrai tester ces solution. Mais si c'est le cas, je vous tiens au courant.

    Merci de ton aide !

    [EDIT] Si quelqu'un sait d'avance si ça vaut le coup ou non, qu'il fasse son apparition ^^ !

    A bientôt.

  6. #6
    Membre chevronné Avatar de binouzzz19
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    385
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 385
    Par défaut
    Bon alors finalement, je n'ai pas étudié la méthode avec oracle et ses curseurs !

    J'ai fait d'une autre manière mais qui est adapté à mon type de projet, donc je ne peux pas donné de réponses précises.

    Je met donc ce post en résolu même si je n'ai pas la réponse. Cela dit, celui qui connait la réponse est le bienvenu pour la donner :p

    Cordialement.

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 288
    Par défaut
    Salut,
    VBA étant un langage interprété et non compilé, il n'est certes pas le plus rapide pour ce genre d'exercice. Les curseurs sous oracle, à mon avis c'est pas très rapide non plus pour 4 millions de boucles.
    Dans le temps j'avais rencontré ce genre de problème, mon traitement excel durait jusqu'à 10 heures. J'avais pu exporter le traitement brut des boucles dans un programme java appelé par Excel, ce qui autorisait en outre le multithreading.
    Résultat : mes 10 heures étaient devenues 12 minutes avec un PC monoprocesseur, et 2-3 minutes avec un quadricoeur.
    Et pourtant java n'est pas réputé pour être très rapide, c'est dire si VBA est lent pour ce genre de boucles

    Bon ce n'est pas une réponse mais ça peut donner des pistes

  8. #8
    Membre chevronné Avatar de binouzzz19
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    385
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 385
    Par défaut
    Merci de ta réponse qui peut donner des informations pour toute personne qui rencontrerait ce genre de problème.

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

Discussions similaires

  1. Problème de performance Hibernate/Oracle
    Par gozzs dans le forum Hibernate
    Réponses: 1
    Dernier message: 04/06/2009, 15h52
  2. access/ excell -> oracle
    Par jibdu94 dans le forum Débuter
    Réponses: 2
    Dernier message: 09/09/2008, 15h31
  3. Performance et oracle 9i
    Par yazen dans le forum Administration
    Réponses: 4
    Dernier message: 15/04/2008, 11h30
  4. Analyse performance serveur Oracle
    Par jef44 dans le forum Administration
    Réponses: 5
    Dernier message: 16/04/2007, 08h29
  5. Pb de performances sous Oracle 10g
    Par kamalito dans le forum Oracle
    Réponses: 24
    Dernier message: 25/10/2005, 16h59

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