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 :

Accés lent a mon application [WD17]


Sujet :

WinDev

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 140
    Points : 56
    Points
    56
    Par défaut Accés lent a mon application
    Bonjour a tous
    j'ai un sérieux problème avec une application que j'ai développer avec WINDEV 17 et MYSQL.
    Lorsque j'ai commencé mes tests en local avec wamp rien pour authentification a la base de données je devais attendre au minimum 10 Sec. et énorme parce que rien que pour avoir l'interface de l'application l'utilisateur doit attendre 20 Sec et après j'ajoute un un enregistrement avec simple requête d'insertion doit j’attende 8 sec sachant que ma base de donnée contient 2000 enregistrement et tous mes requête mes requêtes j'ai les criées par l’éditeur de requête de windev. franchement je sais même pas d'ou viens le problème, si vous avez des idée merci de les partagé avec moi merci d'avance

    Bon dev

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Explications potentielles pour une lenteur constatée :

    -> le réseau
    -> la config du serveur (RAM, DD, carte réseau, processeur, processus qui tournent...)
    -> la config du client (RAM, DD, carte réseau, processeur, processus qui tournent...)
    -> la conception de la base et les indexes
    -> la programmation algorithmique
    -> la conception des requêtes (lien évident avec la conception de la BDD)

    Où chercher en premier ? tu es le mieux placé pour savoir !
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 140
    Points : 56
    Points
    56
    Par défaut
    Merci pour votre repense

    -> le réseau
    pour le réseau je teste l'application sur le même poste c.a.d la base de donnée et application sont dans le même poste.

    -> la config du serveur (RAM, DD, carte réseau, processeur, processus qui tournent...)
    ram = 6 G,DD= 1 tira , CPU=i5
    -> la config du client (RAM, DD, carte réseau, processeur, processus qui tournent...)
    ram = 6 G,DD= 1 tira , CPU=i5

    -> la conception de la base et les indexes
    oui la base de donnée a des indexes, comment les indexes influence sur la vitesse d’exécution ?

    -> la programmation algorithmique

    j'ai programmé l'application en 3 tiers :
    1-couche présentation
    2-couche métier
    3- couche accès au données

    -> la conception des requêtes (lien évident avec la conception de la BDD)
    si des requêtes de CRUD (création, recherche ,modification, suppression)
    et c j'ai compris ce que veut il dire de lien évident avec la conception de la BDD

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    -> réseau : à exclure

    -> machine (serveur/client) : plus que la capacité du DD c'est la vitesse de rotation qui compte... mais passons il semble qu'il s'agisse de machines "récentes"

    -> l'architecture technique : bien pour les 3 tiers mais rien ne garantit qu'il n'y a pas des boucles à rallonge, des tests illogiques... le mieux serait de faire un audit (via l'outil PCSoft) pour voir quelles sont les instructions qui consomme le plus de temps.

    -> les indexes : oui ils jouent sur la rapidité de réponse de la base de données. Ils permettent d'optimiser le temps d’exécution d'une requête.

    -> enfin lien conception BDD/requête : si votre base est bien conçue, vos requêtes seront simples.
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : Laos

    Informations forums :
    Inscription : Mars 2003
    Messages : 552
    Points : 1 193
    Points
    1 193
    Par défaut
    Bonjour,

    L'explication la plus plausible est l'utilisation de l'accès natif et des ordre Hxxxx.

    Faites une simple connexion en ODBC et des requête SQL pour comparer les temps d'exécution.

  6. #6
    Membre chevronné Avatar de laurent30s
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 881
    Points : 1 771
    Points
    1 771
    Par défaut
    Nous utilisons windev avec mysql depuis une 10aine d'année.
    Nous travaillons sur des bases de plusieurs centaines de tables dont certaines contiennent plusieurs millions d'enregistrement et nous ne rencontrons pas ce type de problème.

    Tous ça pour dire que windev et mysql peuvent très bien fonctionner ensemble.
    Ton problème doit probablement provenir de la manière dont tu t'y prends ou du contexte.

    Pour la connexions nous procédons ainsi :
    - on décrit la connexion dans une variable de type connexion en utilisant l'accès natif mysql
    - on ouvre la connexion avec HOuvreConnexion()
    l'ouverture de la connexion prend moins de 5"

    Il faudrait que tu nous décrives
    - comment tu te connectes à la base
    - et est-ce que lors de l'ouverture de la 1ère fenêtre y-a des requêtes qui s'exécutent. si c'est le cas ça serait bien de nous les montrer...
    Bon dev
    Laurent

    - C’est génial.
    - Non c’est bizarre.
    - Justement quand c’est simple y’a des milliers de réponses et quand c’est bizarre y’en a aucune.

  7. #7
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 378
    Points : 4 494
    Points
    4 494
    Par défaut
    Bonjour
    Citation Envoyé par laurent30s Voir le message
    Nous utilisons windev avec mysql depuis une 10aine d'année.
    Nous travaillons sur des bases de plusieurs centaines de tables dont certaines contiennent plusieurs millions d'enregistrement et nous ne rencontrons pas ce type de problème.
    idem

    j'ai même utilisé un accès distant via VPN avec des temps de réponse très corrects, seule la connexion était un peu plus longue, sachant qu'en local la connexion est quasi instantanée (j’utilisais SQLConnecte)

  8. #8
    Membre chevronné Avatar de laurent30s
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 881
    Points : 1 771
    Points
    1 771
    Par défaut
    Tu peux aussi utiliser Projet\analyseur de performance pour voir où les temps sont réellement consommés.
    Parfois on a des surprises... le problème n'est pas toujours où on le pense...
    Bon dev
    Laurent

    - C’est génial.
    - Non c’est bizarre.
    - Justement quand c’est simple y’a des milliers de réponses et quand c’est bizarre y’en a aucune.

  9. #9
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 140
    Points : 56
    Points
    56
    Par défaut
    Merci a tous pour votre repense.
    j'ai utilise analyseur de performance et j'ai constate qu’une requête exécute en boucle.j'ai remédié ce problème et les résultat c'est que j'ai réduit le temps de connexion de 6s a 1s.
    pour la connexions je procède ainsi :
    -je récupéré les paramètres de connexion a la base a partir d'une fichier.ini
    -je décri l a connexion dans une variable de type connexion en utilisant l'accès natif mysql
    -je ouvre la la connexion avec HOuvreConnexion()

    oui dans la première fenêtre il y a une requête de récupération des données
    cette requête a des jointure .
    et voila le capture de analyseur de performance


  10. #10
    Membre chevronné Avatar de laurent30s
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 881
    Points : 1 771
    Points
    1 771
    Par défaut
    Citation Envoyé par vegetacherif Voir le message
    Merci a tous pour votre repense.
    j'ai utilise analyseur de performance et j'ai constate qu’une requête exécute en boucle.j'ai remédié ce problème et les résultat c'est que j'ai réduit le temps de connexion de 6s a 1s.
    pour la connexions je procède ainsi :
    -je récupéré les paramètres de connexion a la base a partir d'une fichier.ini
    -je décri l a connexion dans une variable de type connexion en utilisant l'accès natif mysql
    -je ouvre la la connexion avec HOuvreConnexion()

    oui dans la première fenêtre il y a une requête de récupération des données
    cette requête a des jointure .
    et voila le capture de analyseur de performance
    Pour la connexion tu procèdes comme nous par conséquent je n'ai aucune astuce à te donner.
    Ceci dit à voir la capture de l'analyseur de performance la connexion met 1,5 sec donc tu n'as plus de lenteur de connexion ???

    As-tu encore des problème de lenteur à l'ouverture de la fenêtre ?
    Si c'est le cas, l'analyseur de performance va te dire où est consommé le temps.
    Si ça provient de la requête dont tu parles, le mieux ça sera que tu nous la montre pour voir s'il est possible de l'optimiser...
    Bon dev
    Laurent

    - C’est génial.
    - Non c’est bizarre.
    - Justement quand c’est simple y’a des milliers de réponses et quand c’est bizarre y’en a aucune.

  11. #11
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 140
    Points : 56
    Points
    56
    Par défaut
    Oui le problème il vient de la requête lors de connexion a la base.
    Voila la requête :

    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
     
     
    SELECT 
    	article.IDArticle AS IDArticle,	
    	article.RefArticle AS RefArticle,	
    	article.Designation AS Designation,	
    	article.DateCreation AS DateCreation,	
    	article.QuantitéStock AS QuantitéStock,	
    	article.StockMin AS StockMin,	
    	article.StokAlerte AS StokAlerte,	
    	article.Emplacement AS Emplacement,	
    	article.IDSousFamille AS IDSousFamille,	
    	article.Photo AS Photo,	
    	article.IDAuthentification AS IDAuthentification,	
    	famille.IDFamille AS IDFamille,	
    	famille.NomFamille AS NomFamille,	
    	sousfamille.NomSousFamille AS NomSousFamille
    FROM 
    	article,	
    	famille,	
    	sousfamille
    WHERE 
    	article.IDSousFamille=sousfamille.IDSousFamille
    	AND
    	     sousfamille.IDFamille=  famille.IDFamille 
    	AND
    	(
    		article.IDAuthentification = {PIDAuthentification}
    	)

    dans cette requête je récupère toutes les articles selon l'identifiant et pour chaque article je récupère son sous famille et la famille de cette dernier
    Bon dev

  12. #12
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 378
    Points : 4 494
    Points
    4 494
    Par défaut
    C'est une requête toute simple, ça ne devrait pas être long en exécution

    IDSousFamille et IDFamille sont bien indexés ?

    Essaye éventuellement d'utiliser des JOIN pour voir si ça change quelque chose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT ...
    FROM article
    INNER JOIN sousfamille ON article.IDSousFamille=sousfamille.IDSousFamille
    INNER JOIN famille ON sousfamille.IDFamille = famille.IDFamille
    WHERE article.IDAuthentification = {PIDAuthentification}
    Tu peux nous montrer le code d'exécution de cette requête, à moins que ce ne soit une requête de l'éditeur de requête et que tu l'utilises en source directe

  13. #13
    Membre chevronné Avatar de laurent30s
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 881
    Points : 1 771
    Points
    1 771
    Par défaut
    Comme le dit Pascal c'est une requête simple.
    Si les rubriques sur lesquelles tu opères les jointures et le filtre sont indexée, la requête ne devrait pas être longue...

    Je vois dans le SELECT la rubrique article.Photo
    S'agit-il d'un LONGBLOB dans lequel tu stockes l'image
    ou une chaîne dans laquelle tu stockes le chemin de l'image ?

    S'il s'agit d'un LONGBLOB assure toi que les photos ne soit pas trop volumineuses...
    Et dans le SELECT ne récupère que les rubriques dont tu as besoins c'est plus économe en temps...
    Bon dev
    Laurent

    - C’est génial.
    - Non c’est bizarre.
    - Justement quand c’est simple y’a des milliers de réponses et quand c’est bizarre y’en a aucune.

  14. #14
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 378
    Points : 4 494
    Points
    4 494
    Par défaut
    Citation Envoyé par laurent30s Voir le message
    Et dans le SELECT ne récupère que les rubriques dont tu as besoins c'est plus économe en temps...
    Oui j'avais oublié de préciser ce point aussi, surtout si tu as des rubriques binaires que tu ne veux pas forcément récupérer

  15. #15
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 140
    Points : 56
    Points
    56
    Par défaut
    Merci encore une fois pour votre aide.
    c bon j'ai arrive a l’amélioré le temps de connexion jusqu’à un second .j'ai éliminé un boucle dans l'initialisation de l'application.

    Pour hpascal :
    oui IDSousFamille et IDFamille sont bien indexés.
    j'ai essaie la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT ...
    FROM article
    INNER JOIN sousfamille ON article.IDSousFamille=sousfamille.IDSousFamille
    INNER JOIN famille ON sousfamille.IDFamille = famille.IDFamille
    WHERE article.IDAuthentification = {PIDAuthentification}
    mais y a pas de différence a ma façons que je l'ai décrit.

    Pour laurent30s :

    la rubrique article.Photo c'est juste un nom de la photo, je stocke pas les images dans la base de données.

    Pour les rubriques je récupère juste les rubriques dont j'ai besoins.

    la nouvelle et que le client est satisfait de temps d’exécutions.

    BON dev

  16. #16
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 378
    Points : 4 494
    Points
    4 494
    Par défaut
    Citation Envoyé par vegetacherif Voir le message
    la nouvelle et que le client est satisfait de temps d’exécutions.
    Bon ben alors ... si le client est content

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

Discussions similaires

  1. [Wamp] Problème d'accès à mon application via l'adresse IP de ma machine
    Par abidi_niz dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 12/08/2011, 16h38
  2. Accés à mon application impossible Zend !
    Par Cvbdev dans le forum Langage
    Réponses: 0
    Dernier message: 20/06/2011, 21h55
  3. sécuriser l'accès à mon application ASP.NET
    Par midoom dans le forum ASP.NET
    Réponses: 2
    Dernier message: 17/04/2011, 16h41
  4. [PHP 5.2] Exécution d'un script lourd bloquant l'accès à mon application
    Par icl1c dans le forum Langage
    Réponses: 2
    Dernier message: 08/04/2011, 19h05
  5. Réponses: 1
    Dernier message: 21/12/2008, 00h08

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