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

WinDev Discussion :

Optimiser les opérations sur BDD lourde


Sujet :

WinDev

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 80
    Par défaut Optimiser les opérations sur BDD lourde
    Bonjour à tous,

    J'ai réalisé une application qui utilise une BDD qui est amenée à grossir assez rapidement (au delà de 100Mo).
    Malheureusement j'ai testé toute les procédures avec une BDD légère et je me rend compte que certaines requêtes ne passent plus (temps extrêmement long et plantage de l'application).
    J'en ai remplacé certaines par du code (qui passe mais pour le coup prend aussi pas mal de temps).

    Auriez-vous des conseils à me donner sur la manière d'alléger mes codes et de permettre à me requêtes de passer : astuces, règles ...?

    J'ai déjà intégrer des HlibèreRequête et des SORTIR dans les boucles pour éviter des tests inutiles mais je n'ai pas d'autres idées ...
    Par exemple mon traitement principal prend déjà près de 15 minutes avec une BDD de 150Mo...

    Merci d'avance pour tous vos conseils toujours très utiles.

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 430
    Par défaut
    Bonsoir,
    15 minutes, pour une base de 150Mo, il y a vraiment quelquechose qui cloche.
    Tu devrais commencer par utiliser l'analyseur de performance, pour voir ce qui ne va pas.

    Comme permière piste, je dirai:
    • Utiliser des requêtes qui ne renvoie que les enregistrements nécessaires

    • Dans la mesure du possible, les recherches portent sur des rubriques indexées

    • Préférer une requête à plusieurs jointures, à des boucles imbriquées et de multiples requêtes

    Tatayo.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 80
    Par défaut
    Merci Tatayo,

    J'ai lancé l'analyseur et comme je m'en doutais déjà, ce sont les HéxécuteRequête qui mangent tout le temps.
    Comment puis-je résoudre cela ?
    Qu'entend tu par
    Dans la mesure du possible, les recherches portent sur des rubriques indexées
    ?

    Encore merci.

  4. #4
    Membre Expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 915
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 915
    Par défaut
    Bonjour,

    Personnellement, suivant le type de base de donnée que tu utilise, j'utiliserai des vues ainsi que des procédures stockées afin que le serveur face directement les traitements. et ne retourne que ce que tu as besoin.

    Et bien vérifier les index des tables de la BDD.

    Voilà.. Bonne année à tous.

    Peux tu nous donner ta requête, il y a peux être une optimisation à faire, et indique nous aussi quelle type de traitement tu fais sur le résultat.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 80
    Par défaut
    Merci mail.spam,

    En fait ma Base de données est de type HyperFile.
    J'ai placé un Hréindexe à l afin du remplissage de cette base pour les index mais il semblerait que ça n'arrange rien.

    J'avoue que je me sens complètement perdu devant ces requêtes qui se mettent à prendre un temps dingue alors que la BDD est juste passé de 20 à 100Mo.

    Qu'entends-tu par cela ?
    Personnellement, suivant le type de base de donnée que tu utilise, j'utiliserai des vues ainsi que des procédures stockées afin que le serveur face directement les traitements. et ne retourne que ce que tu as besoin.
    Voici en PJ des exemples de requêtes qui prennent beaucoup de temps et bloquent.


    Merci encore.
    Images attachées Images attachées   

  6. #6
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 430
    Par défaut
    J'avoue que j'ai un peu (beaucoup) de mal avec je "requêteur" de Windev.
    Est-ce que tu peux nous donner le code SQL correspondant, ainsi que la structure des fichiers ?

    Je crois voir que tu fais des jointures entre des fichiers et des requêtes. C'est peut-être là que le bât blesse.

    Tatayo.

Discussions similaires

  1. Optimiser les performances sur un Update.
    Par Delphi-ne dans le forum DB2
    Réponses: 3
    Dernier message: 10/01/2011, 11h22
  2. Optimisation des opérations sur les grands nombres, algorithme de Knuth
    Par Jackyzgood dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 21/10/2010, 20h27
  3. Optimiser les stats sur plusieurs bases
    Par onc31 dans le forum Développement
    Réponses: 2
    Dernier message: 10/02/2010, 13h47
  4. Réponses: 4
    Dernier message: 01/03/2009, 00h10
  5. opération sur bdd fireBird
    Par tarek_ep dans le forum Bases de données
    Réponses: 2
    Dernier message: 04/02/2009, 20h24

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