|
GRUPOS DE DISCUSSÃO PROFISSIONAL WINDEV, WEBDEV e WINDEV Mobile |
| | | | | |
[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 |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|