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 :

[WD14] Faut-il utiliser hAjoute ou executer une requete?


Sujet :

HyperFileSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 22
    Par défaut [WD14] Faut-il utiliser hAjoute ou executer une requete?
    Bonjour,
    Je développe une application multipost sur WD14, pour le moment j'utilise hyperfileSQL classic et l'application est installé sur un serveur.
    Mon problème est qu'il y a 3 utilisateurs minimum qui sont sur le logiciel en même temps ce qui provoque des ralentissements assez désagréable.
    Pour cette raison, je souhaite faire le passage en hyperfileSQL client / serveur. En faisant ça je pense gagner en vitesse d'execution.
    Mais dans mon code je n'utilise que des Hajoute, Hmodifie etc...
    Ne gagnerai-je pas plus temps en exécutant des requêtes ou cela reviens à la même chose?

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2002
    Messages : 899
    Par défaut
    ça ne revient pas du tout à la même chose, et non, il ne faut pas préférer les requêtes.

    Les ordres H sont bien les plus rapides en C/S.

    De plus, les requêtes outrepassent les contraintes de la base (Delete sans cascade par exemple).

  3. #3
    Membre Expert Avatar de klbsjpolp
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 065
    Par défaut
    Citation Envoyé par Bowen Voir le message
    Les ordres H sont bien les plus rapides en C/S.
    Moi je dirais, ça dépend. Si tu veux faire un SELECT de 500000 enregistrements qui prend des informations de 3-4 fichiers (texte multilangue par exemple), je ne suis pas sûr que les fonctions H gagnent la bataille! Le problème c'est que chaque appel a une fonction H interroge le serveur. Les requêtes ou les procédures stockées, elles, n'interrogent le serveur qu'une fois.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 22
    Par défaut
    Merci de vos réponses rapide.

    Je peut continuer a utiliser les fonction H dans le cas où ça reste des petites lecture.
    Donc pour l'affichage de tableau dont les données s'en vont croissante il vaut mieux utiliser les requêtes (comme pour les filtre je suppose), mais pour la modification ou la suppression d'un enregistrement il est préférable d'utiliser les fonction H.

  5. #5
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2002
    Messages : 899
    Par défaut
    Comme l'a dit klbsjpolp : ça dépend.
    A l'usage, je me suis vite rendu compte que le moteur a beaucoup de mal avec les jointures multiples sur de grosses tables.
    Donc j'ai paré le problème en lisant les tables une à une, et en reproduisant la jointure moi même.

    Le must, pour aller le plus vite possible sur un gros parcours de fichier, c'est de joindre les deux. J'ai par exemple une fonction d'extraction qui parcoure un fichier principal, et pour chaque ligne de ce fichier principal, il effectue un bon nombre de vérifications sur des fichiers secondaires.
    Pour produire un traitement le plus rapide possible, je charge donc mes fichiers secondaires dans des requêtes, que j'exécute une fois pour toutes au début de mon extraction. Ensuite, je parcours les requêtes, et pas les fichiers. Le programme ne ré-interroge pas le moteur pour savoir si une mise à jour a eu lieu sur la ligne, et lit directement la ligne en local.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Août 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 22
    Par défaut
    Merci pour votre explication Bowen.

    J'ai encore une question au sujet du client / serveur.
    Est-il possible de détecter les serveur hyperfileSQL sur un réseau?
    Et si cela est possible, basculer vers une base "classique" si il n'en détecte aucun?

  7. #7
    Membre émérite
    Homme Profil pro
    Inscrit en
    Mars 2002
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2002
    Messages : 899
    Par défaut
    Oui je pense qu'on peut détecter les serveurs, mais je ne l'ai jamais fait.
    Les serveurs sont gérés par le MantaManager, sur le port 4999.

    Le centre de contrôle Hyperfile est capable de trouver les serveurs d'un réseau, en interrogeant ce port sur chaque machine. Il faut donc trouver le moyen d'interroger le MantaManager à partir de windev, et le faire sur toutes les machines de ton réseau. Dans l'absolu, c'est sûrement possible, en pratique, ça doit prendre pas mal de temps. Je pense qu'il serait préférable de cibler les machines, le traitement sur une seule prenant beaucoup moins de temps.

Discussions similaires

  1. [MySQL] Utilisation des valeur choix multiple pour executer une requete une valeur a la fois
    Par guigui69 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 26/12/2007, 16h43
  2. Realiser une connexion mysql et execute une requete
    Par Taz_8626 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 03/05/2006, 10h52
  3. Executer une requete depuis un évènement
    Par Eric26 dans le forum Access
    Réponses: 3
    Dernier message: 31/03/2006, 14h47
  4. Utiliser deux bases dans une requete, possible ?
    Par compu dans le forum Requêtes
    Réponses: 2
    Dernier message: 20/02/2006, 14h09
  5. [VB.NET] Executer une requete à partir d'un DataSet...?
    Par anthony70 dans le forum Accès aux données
    Réponses: 3
    Dernier message: 12/07/2004, 14h17

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