PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → [WD8] Comment ameliorer les performances des requetes ?
[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/