Lenteur paradox???

jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 - 18 juil. 2003 à 16:11
dataconcept Messages postés 6 Date d'inscription mercredi 27 avril 2011 Statut Membre Dernière intervention 27 avril 2009 - 29 janv. 2009 à 23:12
Hello,

Voila mes softs utilisent des bases de données paradox. Ces bases sont posées sur un serveur distant. J'y accède par un réseau 100Mbit classique.
Je constate depuis un certains temps que par moment les temps d'accès a ces bases de données sont tres mais vraiment tres long (ça se compte en minute des fois). Lorsque je fonctionne avec ces memes bases en local aucun souci. J'ai constaté qu'au démarrage des softs tout fonctionne normalement mais après quelques minutes et ben hop les temps d'accès peuvent devenir extrenement long.
J'utilise deplhi 6, le serveur est en windows 2000, et les pc clients sont soit en windows NT soit en Windows 2000. Pour me connecter et dialoguer avec les bases de données j'utilise des Tdatabase, Ttable, Tdatasource et des tdbgrid.

Quelqu'un saurait ilo pkoi mes temps d'accès aux bases de données serveur sont aussi long que ça par moment ????

Merci pour votre aide,
Bonne prog,
JMP77.

4 réponses

cs_Amadeus Messages postés 123 Date d'inscription mercredi 2 janvier 2002 Statut Membre Dernière intervention 15 mars 2004 2
18 juil. 2003 à 18:30
Il faudrait que tu te procure un logiciel de permettant d'analyser le flux du réseau pour savoir d'abors si c'est vraiemment tes appli sous paradox ou autre choes.

Paradox n'est vraimment pas fait pour fonctionner en réseau, mon entrteprise édite des progiciels sous paradox et qui tourne en réseau mais on est obligé de faire trés attention dans le codage préférer un while sur une table (et des if) pour ne pas utiliser de filter quand cela est possible faire attention au Query etc..
0
jmp77 Messages postés 1119 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 4 octobre 2006 7
21 juil. 2003 à 08:40
Merci pour tes remarques. Tu me confirmes bein ce que je pensais. Aurais tu des noms de logiciels permettant d'analyser le flux de données réseau?

Encore merci et bonne prog,
JMP77.
0
cs_adrien5 Messages postés 3 Date d'inscription dimanche 14 novembre 2004 Statut Membre Dernière intervention 2 février 2012
24 janv. 2006 à 09:05
Bonjour,

je suis dans le même cas que toi. Je constate sur des applications réseaux sous paradox qu'après un certain temps, ça devient lent (très lent). Je constate que c'est après une modification sur un enregistrement de la table à laquelle je veux accéder. De plus, comme suggéré plus haut, l'activité réseau est énorme lorsque ce problème se produit. A première vue, l'application remarque que les données ont été modifiées et donc elle reprend l'ensemble de la table et tout ce qui tourne autour mais malheureusement elle le fait tout le temps et pas seulement une seule fois. Ce qui implique que pour une bête recherche sur une table de 4000 enregistrement, il lui faut environ 7 sec dans le meilleur des cas.

Si tu as un peu plus d'infos sur le sujet, je suis grandement intéressé

Merci d'avance

Adrien
0
dataconcept Messages postés 6 Date d'inscription mercredi 27 avril 2011 Statut Membre Dernière intervention 27 avril 2009
29 janv. 2009 à 23:12
Désolé de répondre à ce message aussi tard, mais cela aiderai sûrement d'autres maintenant.

J'ai été confronté au même problèmes que vous il y a quelques temps et àpres des nuits blanches de tests j'avais trouver la solution à ce problème.

Voici mon analyse qui à permis de trouver la solution.

1- La lenteur intervient que lorsque plusieurs PC en réseau local accède à une base de donnée partagée
2- La lenteur intervient que lorsque la base de donnée ne se trouve pas dans le PC local, le PC qui heberge la base de donnée ne ralenti pas
3-La lenteur intervient que lorsque les tables sont gérées par BDE (Paradox, dbase), pas de lenteur avec sql
4- Au démarrage de l'application il n'y à pas de lenteur, par la suite la lenteur augmente à l'exploittation de l'application.

J'avais une application partagant des tres grosses tables (100.000 enregistrements) écrite en Delphi 3 ou je n'avais pas ce problème, lorsque je l'avais réécrite en delphi5, j'ai été confronté aux même problème que vous.

Ces informations m'ont permis de restreindre mes recherches et de trouver finalement l'explication du problème.

C EST UN BUG DU BDE
----------------------------

C'est un bug de l'intruction LOCATE du BDE, en local l'instruction LOCATE  et LOOKUP permettant une recherche sur une table fonctionne correctement.

Dès que votre application utilise cette fonction sur une table distante, tous les accès ultérieur à cette table sont ralenti, comme une application utilise plusieurs fois cette fonction, à chaque fois l'application devient de plus en plus lente, jusqu'à devenir inexploitable.

Le BUG de cette fonction provient du fait que la mémoire tampon et le handle de fichier ne sont pas libérés...
 
L'instruction LOCATE et LOOKUP ont été introduit à partir de la version 5 de delphi en remplacement aux instructions de recherche GOTOKEY et GOTONEAR...

Lors de vos recherches sur un champs : Remplacé toute vos instruction LOCATE par l'instruction GOTOKEY et vos problèmes dispatraitrons
Lors de vos recherches sur plusieurs champs utiliser un filtre ou une instruction sql
Le code est plus long à écrire mais c'est le prix à payer pour contourner ce bug.

A part ce bug non répertorié, je vous assure que le BDE est toujours la meilleure manière d'accéder aux base de données DBase et Paradox.

Data-Concept
www.data-concept.eu

bobo
0
Rejoignez-nous