IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

HyperFileSQL Discussion :

Lenteur accès distant HFCS


Sujet :

HyperFileSQL

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2013
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Lenteur accès distant HFCS
    bonjour
    J'utilise aussi une application client/serveur , en locale ça fonctionne très bien ,mais a distance elle est trop lente, un clique peut durer jusqu’à une minute de temp de réponse, sachant que j'utilise un VPN (application et non pas celle du routeur) avec adresse IP fixe de la connexion internet .....
    ya t'il un moyen pour réduire le temp de réponse ??? rendre l’échange plus rapide
    @ IP connexion : 196.43.xx.xx
    @ Ip local serveur 192.168.1.10

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2012
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 144
    Points : 88
    Points
    88
    Par défaut vitesse
    Bonjour

    La vitesse dépend de plusieurs facteurs. La connexion Adsl : moins de 1 Mo, cela ne fonctionne pas ou très mal.
    Pour optimiser, il faut des requêtes SQL et utiliser les commandes h* sur la rechercher d'une fiche par exemple.
    Sûrement que d'autres peuvent donner de bons conseils...
    Donne nous un exemple de ton code qui prend une minute.
    A+

  3. #3
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 378
    Points : 4 494
    Points
    4 494
    Par défaut
    Bonjour

    Citation Envoyé par lepatantpato Voir le message
    al.
    Pour optimiser, il faut des requêtes SQL et utiliser les commandes h* sur la rechercher d'une fiche par exemple.
    Tu voulais surement dire "ne pas utiliser les commandes H*"

    Dans ce genre de cas il faut réduire au maximum les allers-retours entre le client et le serveur, utiliser des H* va générer des quantités d'échanges.
    Un HlitRecherche commence par faire un SELECT * puis fait un parcours

    Par exemple j'ai essayé un HLitRecherPremier sur un site distant sur un gros fichier (quelques millions de lignes), résultat : 20 minutes pour se positionner sur un enregistrement
    Un SELECT fait la même chose en quelques secondes (avec les bons index bien sur)

    Tout de qui peut être fait coté serveur doit l'être (procédures stockées) et il ne faut retourner au client que le strict nécessaire
    Les petites tables doivent être chargées en mémoire pour éviter les accès fréquents etc ...
    Bref il y a un travail d'optimisation à faire

    Et puis je pense aussi que HF n'est le bon choix pour un accès distant, mais ce n'est que mon avis personnel

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2012
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 144
    Points : 88
    Points
    88
    Par défaut VITESSE
    Bonjour
    je viens de faire un test vite fait:
    - exe situé à Reims, base c/s à Nice.
    - fichier ~ 800 000 fiches.
    (hors procédure stockée):
    1ère interrogation:
    Interrogation SQL (select...) = 186 ms
    avec Hlitrecherche() : 167 ms
    puis les fois suivantes: même durée (à peu près) pour le sql, mais avec h*, toujours autour des 52 ms.
    lepatantpato

  5. #5
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 378
    Points : 4 494
    Points
    4 494
    Par défaut
    Moi c'était sur un fichier DB2/400 par accès OLEDB

  6. #6
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Citation Envoyé par lepatantpato Voir le message
    Bonjour
    je viens de faire un test vite fait:
    - exe situé à Reims, base c/s à Nice.
    - fichier ~ 800 000 fiches.
    (hors procédure stockée):
    1ère interrogation:
    Interrogation SQL (select...) = 186 ms
    avec Hlitrecherche() : 167 ms
    puis les fois suivantes: même durée (à peu près) pour le sql, mais avec h*, toujours autour des 52 ms.
    lepatantpato
    Je ne pense pas que cette comparaison soit significative, vu que les 2 ordres ont la même fonction qui est de retourné un seul enregistrement.

    Par contre, si l'on doit parcourir un ensemble de lignes qui ont un critère donnée, il est largement préférable d'effectuer un select qui sera résolu en 1 aller/retour client/serveur, qu'un HLitRecherchePremier et HLitSuivant qui généreront autant d'aller/retour client/serveur qu'il y a de HLitSuivant.
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

  7. #7
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 378
    Points : 4 494
    Points
    4 494
    Par défaut
    Citation Envoyé par DelphiManiac Voir le message
    Je ne pense pas que cette comparaison soit significative, vu que les 2 ordres ont la même fonction qui est de retourné un seul enregistrement.
    Sauf que HLitRecherche... fait un SELECT *, donc retourne TOUTES les colonnes de la table
    Sur certaines tables de gros logiciels on a plusieurs centaines de colonnes et ça fait une grosse différence
    Mais il ne doit pas y avoir que ça vu les différences de temps qu'on a obtenu
    Quand j'aurai le temps j'activerai les traces OLEDB de client Access pour voir tout ce qui s'y passe

  8. #8
    Membre expérimenté
    Inscrit en
    Août 2010
    Messages
    726
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 726
    Points : 1 645
    Points
    1 645
    Par défaut
    HLitRecherche a l'option hLimiteParcours pour ne pas anticiper un parcours, et donc charger uniquement l'enreg voulu.

    Un parcours ne fait pas autant de requêtes que de HLitSuivant, il y a un buffer.

    hpascal a raison pour OLE DB, mais pour HF/CS, je sais pas. Je crois que c'est resté très basique avec un curseur client (= chargement de tout le résultat de la requête d'un coup).

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2013
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    bonjour
    j'essaye cette fois ci d'utiliser la commande HConnecteAccèsDistant(), et il indispensable d'ouvrir le port 4900 au niveau du routeur coté client et coté serveur , ou bien rien que coté serveur ???

    sachant que j'utilise actuellement la fonction HDécritConnexion()

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2013
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    bonjour
    si j'arrive a se connecter a mon serveur via internet , il reste donc qu'a modifier l'application et utiliser les requêtes au lieu de la les fonctions (H), pour qu'elle soit plus rapide ??????

  11. #11
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2012
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2012
    Messages : 144
    Points : 88
    Points
    88
    Par défaut vitesse
    Bonjour

    Oui; en règle générale, les requêtes sql sont beaucoup plus rapides que les ordres h*. Intéresse-toi également aux procédures stockées.
    Mais si tu dois faire une recherche, hlitrecherche() peut s'avérer plus efficace. De toutes façons, pour tester, encadre tes procédures dans un chrono et tu verras rapidement ce qui est le plus efficace.

  12. #12
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2013
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par lepatantpato Voir le message
    Bonjour

    Oui; en règle générale, les requêtes sql sont beaucoup plus rapides que les ordres h*. Intéresse-toi également aux procédures stockées.
    Mais si tu dois faire une recherche, hlitrecherche() peut s'avérer plus efficace. De toutes façons, pour tester, encadre tes procédures dans un chrono et tu verras rapidement ce qui est le plus efficace.
    Bonjour
    merci beaucoup pour ton aide...je vais essayer cette démarche et on discuteras après

Discussions similaires

  1. Accès distant HFCS
    Par lepatantpato dans le forum HyperFileSQL
    Réponses: 21
    Dernier message: 14/06/2017, 21h46
  2. [XP]Accès distant
    Par pinocchio dans le forum Windows XP
    Réponses: 3
    Dernier message: 24/11/2005, 12h10
  3. accès distants à mysql (débutant)
    Par seb0026 dans le forum Débuter
    Réponses: 1
    Dernier message: 10/10/2005, 22h41
  4. Comment créer une connexion accès distant ?
    Par fredero dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 08/06/2005, 22h31
  5. acces distant a un fichier
    Par vedder dans le forum Développement
    Réponses: 3
    Dernier message: 07/12/2004, 17h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo