PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 2024 → [H/F CS - Urgent] Fonctions HyperFile ou Requêtes SQL
[H/F CS - Urgent] Fonctions HyperFile ou Requêtes SQL
Iniciado por yvan.guillermin, jun., 08 2005 10:35 AM - 3 respostas
Publicado em junho, 08 2005 - 10:35 AM
Bonjour,
le service informatique dans lequel je travaille est actuellement en charge du redéveloppement du système de GPAO maison sous environnement Windows avec WinDev 9.
Nous avons choisi comme SGBD HyperFile C/S. Le principal but de ce redéveloppement est de fournir aux utilisateurs une application beaucoup plus rapide par rapport à notre existant.
Nous avons fait quelques tests et nous nous posons maintenant quelques questions.

Premièrement, comment fonctionne par exemple la liaison directe d'une table sur une table HyperFile C/S ? Est-ce que toutes les données de la table sont récupérées d'un coup et après, la consultation de la table se fait en mémoire, ou alors est-ce que seul les enregistrements affichés dans la table sont récupérés à mesure qu'on se déplace dedans. (Nous pensons à la deuxième solution)

Deuxièmement, ayant comme souci la rapidité de notre future application et l'économie de la bande passante, nous nous demandons après quelques tests s'il vaut mieux utiliser des requêtes SQL pour récupérer plus d'une ligne de données ou utiliser les ordres HLit*** avec les liaisons direct sur les fichiers de données.
Avec les requêtes on récupère tous les enregistrements d'un coup et après on travaille dessus en mémoire, mais cela peut entraîner ponctuellement une charge réseau importante.
En travaillant directement sur les fichiers avec les ordres HLit**** la récupération des données à l'air de se faire au fur et à mesure et donc d'utiliser le réseau de facon régulière mais pas importante. à l'inverse des requêtes.
Quelles est donc la solution qui selon vous nous permettrait d'économiser au mieux la bande passante de notre réseau ? (sachant qu'il y a environ 70 postes utilisateurs, et notre existant représente environ 50000 enregistrements pour la plus grosse table)

J'aimerais avoir un retour d'expérience de la part d'informaticiens ayant développé des applications dans ce cadre la et ayant utilisé les ordres HLit****.

Merci d'avance

--
Yvan GUILLERMIN
Publicado em junho, 08 2005 - 12:11 PM
Je n'ai pas pu encore tester a fond le mode client/serveur HF car une
fontionnalité importante ne fonctionne pas. Toutefois, le gros avantage
de passer par une requete est de pouvoir choisir le nombre de champs que
l'on veut récuperer et ainsi mieux controler le flux reseau.

J'ai actuellement , en Windev 55 ( donc hlitxxx et vues ) un application
de gestion utilisée par 50 postes et dont le fichier le plus gros
contient 828.000 enregistrements ( lignes de fatures ) en fin d'exercice.

Je viens de faire un test, il me faut 22 secondes pour afficher dans une
table la liste des 5000 lignes de factures sur un article entre deux
dates ( j'ai récuperé 8 colonnes de la table des lignes de facture) .

Avec Windev 9, cela devrait etre bcp plus rapide ( je vais bientot le
tester )

Yvan GUILLERMIN wrote:
Bonjour,
le service informatique dans lequel je travaille est actuellement en charge du redéveloppement du système de GPAO maison sous environnement Windows avec WinDev 9.
Nous avons choisi comme SGBD HyperFile C/S. Le principal but de ce redéveloppement est de fournir aux utilisateurs une application beaucoup plus rapide par rapport à notre existant.
Nous avons fait quelques tests et nous nous posons maintenant quelques questions.

Premièrement, comment fonctionne par exemple la liaison directe d'une table sur une table HyperFile C/S ? Est-ce que toutes les données de la table sont récupérées d'un coup et après, la consultation de la table se fait en mémoire, ou alors est-ce que seul les enregistrements affichés dans la table sont récupérés à mesure qu'on se déplace dedans. (Nous pensons à la deuxième solution)

Deuxièmement, ayant comme souci la rapidité de notre future application et l'économie de la bande passante, nous nous demandons après quelques tests s'il vaut mieux utiliser des requêtes SQL pour récupérer plus d'une ligne de données ou utiliser les ordres HLit*** avec les liaisons direct sur les fichiers de données.
Avec les requêtes on récupère tous les enregistrements d'un coup et après on travaille dessus en mémoire, mais cela peut entraîner ponctuellement une charge réseau importante.
En travaillant directement sur les fichiers avec les ordres HLit**** la récupération des données à l'air de se faire au fur et à mesure et donc d'utiliser le réseau de facon régulière mais pas importante. à l'inverse des requêtes.
Quelles est donc la solution qui selon vous nous permettrait d'économiser au mieux la bande passante de notre réseau ? (sachant qu'il y a environ 70 postes utilisateurs, et notre existant représente environ 50000 enregistrements pour la plus grosse table)

J'aimerais avoir un retour d'expérience de la part d'informaticiens ayant développé des applications dans ce cadre la et ayant utilisé les ordres HLit****.

Merci d'avance

--
Yvan GUILLERMIN

Publicado em junho, 08 2005 - 9:54 PM
Merci pour cette réponse.
Je souhaiterai cependant avoir des retours d'expérience et notamment des retours de la part de personne utilisant en production HF C/S.

--
Yvan GUILLERMIN
Publicado em junho, 09 2005 - 9:14 AM
Salut !


On 8-Jun-2005, "Yvan GUILLERMIN" <yvan.guillermin@piroux.com> wrote:

Bonjour,
le service informatique dans lequel je travaille est actuellement en
charge du redéveloppement du système de GPAO maison sous environnement
Windows avec WinDev 9.
Nous avons choisi comme SGBD HyperFile C/S. Le principal but de ce
redéveloppement est de fournir aux utilisateurs une application beaucoup
plus rapide par rapport à notre existant.
Nous avons fait quelques tests et nous nous posons maintenant quelques
questions.

Premièrement, comment fonctionne par exemple la liaison directe d'une
table sur une table HyperFile C/S ? Est-ce que toutes les données de la
table sont récupérées d'un coup et après, la consultation de la table se
fait en mémoire, ou alors est-ce que seul les enregistrements affichés
dans la table sont récupérés à mesure qu'on se déplace dedans. (Nous
pensons à la deuxième solution)

Deuxièmement, ayant comme souci la rapidité de notre future application et
l'économie de la bande passante, nous nous demandons après quelques tests
s'il vaut mieux utiliser des requêtes SQL pour récupérer plus d'une ligne
de données ou utiliser les ordres HLit*** avec les liaisons direct sur les
fichiers de données.
Avec les requêtes on récupère tous les enregistrements d'un coup et après
on travaille dessus en mémoire, mais cela peut entraîner ponctuellement
une charge réseau importante.
En travaillant directement sur les fichiers avec les ordres HLit**** la
récupération des données à l'air de se faire au fur et à mesure et donc
d'utiliser le réseau de facon régulière mais pas importante. à l'inverse
des requêtes.
Quelles est donc la solution qui selon vous nous permettrait d'économiser
au mieux la bande passante de notre réseau ? (sachant qu'il y a environ 70
postes utilisateurs, et notre existant représente environ 50000
enregistrements pour la plus grosse table)

J'aimerais avoir un retour d'expérience de la part d'informaticiens ayant
développé des applications dans ce cadre la et ayant utilisé les ordres
HLit****.

Merci d'avance

--
Yvan GUILLERMIN




J'ai une appli en clientèle (11 Postes remote connecté par ADSL + 4 Postes
en local via LAN Serveur : P4 512MB RAM Linux Distribution Mandrake 10.1 -
Serveur Manta 33R - Tailles des fichiers : aujourd'huii : +/- 300.000
enregistrements)
Les fichiers sont indexés sur tout les champs susceptibles d'être utilisé
pour une recherche ou comme critère de sélection ceci afin d'améliorer les
performances des requètes SQL.
Je n'utilise pas le requèteur WD, toutes mes requètes sont rédigées
manuellement et exécutées avec hexecuterequètesql().
Pour les modifications d'uin enregistrement particulier, j'utilise encore,
par habitude et facilité des hModifie() ... mais franchement, des requètes
sont aussi facile à utiliser ...

Tes questions :

Dans l'ordre :
1) Liaison directe des tables
Cela fonctionne ... mais quant à moi, je n'utilise quasi que des tables
mémoires alimentées par des requètes, sauf pour des très petits fichiers (
des paramètres, par exemple ) cart je trouve que les performances sont
meilleures.
Les combo avec liaison automatique à un fichier, surtout si on utilise la
saisie assistée, sont quasi inutilisables.
Comme mes tables sont assez conséquences, dans les écrans de recherche, je
n'accepte pas des conditions pouvant ramener tous les enregistrements d'un
fichier.

2) Utilisation des ordres H....() en C/S
Aucun problème, l'usage en est identique à celui de HF Classique
Mais contrairement à ce que tu crois, il peut générer PLUS de trafic que des
requètes.
En effet, un hLit....() ramène tous les champs d'un enregistrement.
Imagine une boucle sur une sélection d'enregistrements, les fonction hlit...
liront tous les champs des enregistrements concernés. Si tu ne t'intéresse
qu'à un champ particulier, une requète SQL ne ramenant que le champ qui
t'intéresse va générer bien moins de trafic ...


Bien à toi !

--
Marcel Berman
c/o Managing Business SPRL
Allée du Petit Paris, 11
B - 1410 - Waterloo
Tel : +32 2 351.60.64
Fax : +32 2 351.45.78
Gsm : +32 475.799.477