|
[WD8] Comment ameliorer les performances des requetes ? |
Iniciado por metsdumanche, 29,nov. 2004 18:19 - 4 respuestas |
| |
| | | |
|
| |
Publicado el 29,noviembre 2004 - 18:19 |
Bonjour,
Je suis en train d'essayer de convertir ma compta de Delphi en WinDev. Avec Delphi, j'utilisais une base de données Access, avec requêtes en ADO. Avec Windev, j'utilise les mêmes requêtes, sur des tables ayant la même structure, mais en HyperFile.
Le temps d'exécution des requêtes est 3 fois plus lent avec Windev qu'en ADO sur Access !!! Où est mon erreur ?
Merci.
-- Jean-Michel CAMBOT metsdumanche chez baliciel.com Baliciel HomePage : http://www.baliciel.com/ |
| |
| |
| | | |
|
| | |
| |
Publicado el 24,noviembre 2004 - 19:01 |
Jean-Michel CAMBOT a écrit :
Bonjour,
Je suis en train d'essayer de convertir ma compta de Delphi en WinDev. Avec Delphi, j'utilisais une base de données Access, avec requêtes en ADO. Avec Windev, j'utilise les mêmes requêtes, sur des tables ayant la même structure, mais en HyperFile.
Le temps d'exécution des requêtes est 3 fois plus lent avec Windev qu'en ADO sur Access !!! Où est mon erreur ?
Merci.
Verifie les rubriques clefs et les clef composées aider. a++
Goof |
| |
| |
| | | |
|
| | |
| |
Publicado el 29,noviembre 2004 - 14:25 |
"Jean-Michel CAMBOT" <metsdumanche@baliciel.virer.com> a écrit dans le message de news:41ab42f8$1@news.pcsoft.fr...
Bonjour,
Je suis en train d'essayer de convertir ma compta de Delphi en WinDev. Avec Delphi, j'utilisais une base de données Access, avec requêtes en ADO. Avec Windev, j'utilise les mêmes requêtes, sur des tables ayant la même structure, mais en HyperFile.
Le temps d'exécution des requêtes est 3 fois plus lent avec Windev qu'en ADO sur Access !!! Où est mon erreur ?
========================================= Salut,
J'étais en FoxPro/Visual FoxPro et je vis le même problème que j'avais détecté depuis le tout début lors de mon exploration de Windev. Malheureusement, c'est la contrainte de ce langage. Mais il y a tellement de bons côtés pour compenser.
Par exemple, en FoxPro, un de mes clients a une base de données de plus de 70,000 clients, 8,000 Titres de films, un historique de trois ans de ventes, 9000+ lignes de comptes à recevoir et de nombreuses autres informations réparties dans 39 fichiers. Le module de préparation d'un nouveau mois fait un "nettoyage" (reports de soldes, mises à jours, effacer sélectivement les enregistrements devenus inutiles, etc...) + une réindexation de chaque fichier. Sur son Pentium 2.8 GHz, la procédure complète prend mois de 8 secondes!! Ça c'est difficile à battre. (en FoxPro)
Je suis certain que ce sera beaucoup plus long en Windev 8 (ou 9). Mais est-ce vraiment important pour une procédure exécutée 1 fois par mois? Ce qui risque d'être agaçant ce sont les requêtes routinières - et encore - il suffit d'optimiser et faire patienter l'usager avec un compteur ou une jauge tant que les temps sont raisonnables.
Par contre, pour la manipulation de très grandes quantités où il est important d'obtenir des résultats en des temps records (rare), Delphi ou FoxPro est beaucoup mieux.
Il ne faut jamais oublier trois choses: Windev améliore constamment ses temps d'exécution, les ordinateurs sont de plus en plus rapide et les temps de développements et de maintenances exigés sont de plus en plus courts et là, Windev est un champion.
Réal Phil |
| |
| |
| | | |
|
| | |
| |
Publicado el 29,noviembre 2004 - 21:49 |
Pour effectuer cette vérification, utilises l'optimiseur de requetes. Pour cela, tu fait simplement un clic droit sur ta requête.
Goof wrote:
Jean-Michel CAMBOT a écrit : Bonjour,
Je suis en train d'essayer de convertir ma compta de Delphi en WinDev. Avec Delphi, j'utilisais une base de données Access, avec requêtes en ADO. Avec Windev, j'utilise les mêmes requêtes, sur des tables ayant la même structure, mais en HyperFile.
Le temps d'exécution des requêtes est 3 fois plus lent avec Windev qu'en ADO sur Access !!! Où est mon erreur ?
Merci.
Verifie les rubriques clefs et les clef composées aider. a++ Goof |
| |
| |
| | | |
|
| | |
| |
Publicado el 30,noviembre 2004 - 04:54 |
"Antoine" <antoine.info.dev@free.fr> a écrit :
Pour effectuer cette vérification, utilises l'optimiseur de requetes. Pour cela, tu fait simplement un clic droit sur ta requête.
En effet, je vais essayer l'optimiseur de requêtes. De ce que j'ai pu observer, ce sont les requêtes répétées avec jointures multiples qui sont particulièrement lentes (tout est relatif bien entendu).
Je voulais générer un graphe sur une compta, avec lecture des recettes/dépenses/mouvements sur 12 mois. Avec une boucle qui lance 12 fois 8 requêtes, sur de petites tables (1000 lignes environ), ça prenait 3 secondes (au lieu d'1 seconde avec Delphi, pourtant en ADO sur une table Access ...). J'ai changé mes requêtes en utilisant plutôt des fonctions de groupe (group by), et je n'ai plus que 12 fois 2 requêtes, ce qui prend 1 seconde (mais peut-être qu'avec Delphi, ça prendrait 1/3 de seconde avec ces requêtes .
Pour le calcul du relevé de banque avec solde antérieur, et solde relevé, j'ai fait une requête bien compliquée, avec un UNION (pour concaténer le résultat de 2 requêtes), et à ma grande surprise, ça a marché du premier coup, et c'est très rapide !
Je pense qu'il faut apprendre comment se comporte le moteur Hyperfile pour pouvoir écrire des requêtes optimisées pour ce comportement (c'était pareil avec Oracle, l'ordre des jointures et conditions était important, ainsi que l'ordre des tables !). Peut-être en effet que l'analyseur de performances des requêtes de Windev peut nous donner de bonnes pistes sur Hyperfile. Je testerai ça demain.
Sinon, j'espère que les graphes de la version 9 seront plus conséquents, plus souples, plus paramétrables et plus beaux que ceux de la version 8, qui sont vraiment minimalistes  Quelqu'un sait-il si on peut utiliser l'ActiveX TChart de Delphi ?
Merci.
-- Jean-Michel CAMBOT metsdumanche chez baliciel.com Baliciel HomePage : http://www.baliciel.com/ |
| |
| |
| | | |
|
| | | | |
| | |
|