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 :

[windev10] lenteur de hLitPremier


Sujet :

WinDev

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    551
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2005
    Messages : 551
    Points : 260
    Points
    260
    Par défaut [windev10] lenteur de hLitPremier
    bonjour,

    encore des problemes d'execution de code..Je sais pas pourquoi cela me fait cela frequemment, mais cette fois il 'a vraiment aucune raison.
    peu de données en bas et pourtant hLitpremier s'execute avec une extreme lenteur.
    ma reqete a ete construite a l'aide de l'editeur de rerquete et elle est relativement simple et s'execute rapidement.
    mais ensuite l'acces aux donnes est trrrrrrrrrres lente...j'ai fermé l'apllic test au bout de 4mn d'attente..
    voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    hLitPremier(marequete,id,hsansraafraichir)

    pourquoi diable, il aurait du mal a acceder aux données?

    merci
    nath

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    551
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2005
    Messages : 551
    Points : 260
    Points
    260
    Par défaut
    en fait lorsque j'enleve ma condition, cela s'execute rapidement..
    mais j'ai vraiment peu de donnée, est ce du au fait que ma table comporte bcp de champ?(154)??

  3. #3
    Membre expert
    Avatar de Emmanuel Lecoester
    Profil pro
    Inscrit en
    Février 2003
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2003
    Messages : 1 493
    Points : 3 266
    Points
    3 266
    Par défaut
    Il faudrait un exemple de requete.

    Sinon le hlitpremier execute la requete et fait le premier fetch.
    Emmanuel Lecoester
    => joomla addict.

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    551
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2005
    Messages : 551
    Points : 260
    Points
    260
    Par défaut
    une reqete toute simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT 
    	Bien.id AS id,	
    	Bien.ap_etage AS ap_etage,	
    	Bien.etage AS etage,	
    	Bien.ErreurImport AS ErreurImport
    FROM 
    	Bien
    WHERE 
    	Bien.etage = 0
    ORDER BY 
    	id DESC
    et voici le debut de mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    BTN_majEtage..Etat=Grisé
    CBM_message =  "Modification en cours"
    SI HExécuteRequête(REQ_MAJEtage) ALORS
    	Info("coucou")
    //	itot = HNbEnr(REQ_MAJEtage)
    	Info("coucou")
    	HLitPremier(REQ_MAJEtage,id,hSansRafraîchir)	
    	Info("total "+itot)
    ...

  5. #5
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 724
    Points
    5 724
    Par défaut
    J'ai remarqué que HNbEnr est relativement lent combien d'enregistrement selectionnes-tu avec cette requete ? Pour avoir un ordre d'idée.
    " Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
    Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]

  6. #6
    Membre habitué Avatar de Romanops
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2002
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 278
    Points : 165
    Points
    165
    Par défaut
    As-tu un index sur le critère de recherche, si la réponse est non je te conseille vivement d'en créer un, car ça accelère énormément la rapiditée. J'avais une table de 5000 enregistrements, une requête me prennait plus d'une minute. J'ai mis des index, et la requête ne me prennait plus que 14 secondes (c'est assez énorme). Après, j'ai optimisé le code SQL de ma requête et elle ne fait plus que 1 sec et quelques. Donc mission réussie !

    Bon courage
    En vous remerciant, bonsoir.

  7. #7
    Membre expert
    Avatar de Emmanuel Lecoester
    Profil pro
    Inscrit en
    Février 2003
    Messages
    1 493
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2003
    Messages : 1 493
    Points : 3 266
    Points
    3 266
    Par défaut
    id doit être la PK donc c'est bon pour l'order by
    y-a-t-il un index sur Bien.etage ? mais Bien.etage est-il assez discriminant dans la table ? car si tu as 5 valeurs pour 10000 lignes en moyenne il va se baser sur l'index à cause du filtre pour ensuite parcourir les 20000 lignes associées (en moyenne toujours). Il est donc plus rapide pour l'optimiseur de ne pas avoir d'index sur une colonne non discriminante.
    Emmanuel Lecoester
    => joomla addict.

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    551
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2005
    Messages : 551
    Points : 260
    Points
    260
    Par défaut
    presque rien, moins de 100 enregistrement...
    j'ai pas mis de clef sur etage, d'ailleurs je viens d'en mettre une et maintenant je peux plus tester mon applic...grrrrrrrrrrrr, il me dit que ma table bien est en maintenance, mais il a ete toute la nuit en maintenance....grrrrrrrrrrrrrrr!!
    je vais reboot mon ordi et voir la suite...

    qu'entends tu par assez discriminant? qu'il comporte un nombre suffisant de valeur differantes??
    Mais sinon etage en fait vaut 0, lors de l'import et justement je fais un traitement dessus pour lui donner une valeur suivant la valeur d'un autre champs"ap_etage" qui est une chaine

    En gros :
    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
     
    sNewEtage = SansEspace(REQ_MAJEtage.ap_etage) 
    SI Val(sNewEtage) <> 0 ALORS
    			SI ChaîneOccurrence(sNewEtage,".")=0  ALORS
    				NewEtage = sNewEtage
    			SINON
    				sErreurEtage = "Etage : le nombre comporte une virgule"
    			FIN		
    		SINON SI ChaîneFormate(sNewEtage,ccMinuscule+ccSansPonctuationNiEspace) DANS ("rdc","rdj")
    			NewEtage = 0
    		SINON SI ChaîneOccurrence(sNewEtage,"/") >= 1
    			//PositionOccurrence(REQ_MAJEtage.ap_etage,"\",1)
    			newEtage=Gauche(sNewEtage,1)
    		SINON
    			sErreurEtage = "Etage : erreur"	
    		FIN
    newEtage equivaut a etage

Discussions similaires

  1. [LG]Lenteur de parcours de fichier
    Par YéTeeh dans le forum Langage
    Réponses: 9
    Dernier message: 26/11/2003, 22h57
  2. [Débutant] Lenteur avec TComPort
    Par PhDt76 dans le forum C++Builder
    Réponses: 22
    Dernier message: 27/09/2003, 21h43
  3. lenteur d'affichage de requete dans un DBGrid
    Par nico27 dans le forum InterBase
    Réponses: 9
    Dernier message: 23/06/2003, 13h54
  4. [Sybase]probleme de lenteur
    Par MASSAKA dans le forum Sybase
    Réponses: 3
    Dernier message: 19/03/2003, 22h58
  5. Lenteur d'execution de Jbuilder 6
    Par Tsimplice dans le forum JBuilder
    Réponses: 6
    Dernier message: 18/12/2002, 14h41

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