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

  1. #1
    Membre confirmé
    Avatar de Narwe
    Homme Profil pro
    Développeur informatique
    Inscrit en
    février 2013
    Messages
    223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : février 2013
    Messages : 223
    Points : 573
    Points
    573
    Par défaut Vider le cache pour tester les temps d'exécution des requêtes
    Bonjour,

    J'utilise un serveur HFSQL C/S (Version 24).
    il s'agit d'un serveur SQL de test installé sur mon poste de développement.

    Je cherche à optimiser des requêtes mais le problème est que lorsqu'on exécute une requête 2 fois de suite, le serveur utilise un cache qui rend la 2e exécution beaucoup plus rapide.
    Dans mon exemple, ma requête dure 8 secondes la première fois puis 1 seconde les fois suivantes (sous le centre de contrôle HFSQL).

    => Comment faire pour pouvoir exécuter cette requête 2 fois de suite et qu'elle dure 8 secondes à chaque fois (avant que je ne l'améliore) ?

    - Le fait d'arrêter / redémarrer le serveur ne vide pas ce cache (et le Centre de Contrôle n'aime pas trop qu'on redémarre le serveur car il plante alors fréquement)
    - Le fait, dans les paramètres du serveur, de diminuer la taille du cache, ne permet pas cela (mais on ne pas pas descendre en dessous de 10 Mo)
    - La requête RESET QUERY CACHE ne sont pas reconnu par le serveur.

    Je suis à court d'idée si ce n'est de redémarrer mon poste (tout au moins pour voir si après redémarrage je suis bien à 8 secondes car si après avoir redémarrer je suis à 1 seconde, c'est qu'il doit s'agir d'un fichier présent quelques part).

  2. #2
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    mutlitâche-multifonction
    Inscrit en
    juin 2003
    Messages
    4 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : mutlitâche-multifonction
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2003
    Messages : 4 112
    Points : 7 037
    Points
    7 037
    Par défaut
    Bonjour,

    j'aurais penché pour les fichiers contenus dans les dossiers cachés de ta "racine" des bases HFCS. Il y a notamment le fichier QueryLog (fic+ndx) dans le dossier _System, qui me semble prometteur (au vu du nom). Mais il est protégé par mdp. Mais pas sûr que tu puisses le supprimer avec manta qui tourne en arrière plan.

    A voir si tu peux faire une demande au ST pour la purge dudit cache.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Make it real not fantasy.

  3. #3
    Membre confirmé
    Avatar de Narwe
    Homme Profil pro
    Développeur informatique
    Inscrit en
    février 2013
    Messages
    223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : février 2013
    Messages : 223
    Points : 573
    Points
    573
    Par défaut
    A priori, ça ne suffit pas.
    J'en ai profité pour supprimé tous les répertoire système du serveur et de la base mais en me reconnectant, j'obtiens toujours un temps d'une seconde pour ma requête...

    Je vais tenter de contacter le ST.

  4. #4
    Membre confirmé
    Avatar de Narwe
    Homme Profil pro
    Développeur informatique
    Inscrit en
    février 2013
    Messages
    223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : février 2013
    Messages : 223
    Points : 573
    Points
    573
    Par défaut
    Pour info, voici la réponse du ST :
    Seul l’arrêt et le redémarrage du serveur permet de vider les caches.
    Personnellement, je n'ai pas l'impression que ce soit suffisant. Je vais refaire des essais...

  5. #5
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    mutlitâche-multifonction
    Inscrit en
    juin 2003
    Messages
    4 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : mutlitâche-multifonction
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2003
    Messages : 4 112
    Points : 7 037
    Points
    7 037
    Par défaut
    Hello,

    +1 pour le retour. Une idée : ce ne serait tout simplement pas le(s) cache(s) de ton pc/Windows ?
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Make it real not fantasy.

  6. #6
    Membre habitué
    Homme Profil pro
    Inscrit en
    janvier 2003
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : janvier 2003
    Messages : 109
    Points : 194
    Points
    194
    Par défaut
    bonjour,

    est ce que cette "commande" existe pour HFSQL C/S : SQL_NO_CACHE ?

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select SQL_NO_CACHE col1,col2.... from MaTable....
    Cordialement JeAn-PhI

  7. #7
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    mutlitâche-multifonction
    Inscrit en
    juin 2003
    Messages
    4 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : mutlitâche-multifonction
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2003
    Messages : 4 112
    Points : 7 037
    Points
    7 037
    Par défaut
    Citation Envoyé par JeAn-PhI Voir le message
    bonjour,

    est ce que cette "commande" existe pour HFSQL C/S : SQL_NO_CACHE ?

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select SQL_NO_CACHE col1,col2.... from MaTable....
    Bonjour,

    Belle idée JeanPhi ! Mais c'est HFCS : Cette requête renvoie une belle erreur dans le centre de contrôle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Erreur renvoyée par le serveur <localhost:4900> :
    Erreur dans le code SQL de la requête <RequêteSansNom1>. Initialisation de la requête impossible.
    Rubrique SQL_NO_CACHE inconnue dans le fichier . Vérifiez que la requête est en phase avec la description des fichiers.
    Erreur détectée :
    select >>>>SQL_NO_CACHE<<<< Rub25 from ACC
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Make it real not fantasy.

  8. #8
    Membre habitué
    Homme Profil pro
    Inscrit en
    janvier 2003
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : janvier 2003
    Messages : 109
    Points : 194
    Points
    194
    Par défaut
    est ce que la fonction NOW() ou équivalent est supportée par HFSQL C/S ?

    si oui alors faire ceci :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select col1,col2,....,now() from MaTable

    on pourra voir si la date/heure change à chaque exec de la req mais je ne saurais vous garantir que le résultat n'est pas récupérer depuis le cache
    Cordialement JeAn-PhI

  9. #9
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    mutlitâche-multifonction
    Inscrit en
    juin 2003
    Messages
    4 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : mutlitâche-multifonction
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2003
    Messages : 4 112
    Points : 7 037
    Points
    7 037
    Par défaut
    Hello Jean-Phi,

    Voilà le beau message d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Erreur renvoyée par le serveur <localhost:4900> :
    Erreur dans le code SQL de la requête <RequêteSansNom1>. Initialisation de la requête impossible.
     
    La procédure stockée <now> n'a pas été trouvée.
    Erreur détectée :
    select >>>>now()<<<< from ARTICLE
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Make it real not fantasy.

  10. #10
    Membre habitué
    Homme Profil pro
    Inscrit en
    janvier 2003
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : janvier 2003
    Messages : 109
    Points : 194
    Points
    194
    Par défaut
    bonjour,

    on fait soit :

    soit :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select col1,now() from Matable

    je viens d'aller voir les commandes SQL disponible
    essayez ceci :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select get_date()
    Cordialement JeAn-PhI

  11. #11
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    mutlitâche-multifonction
    Inscrit en
    juin 2003
    Messages
    4 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : mutlitâche-multifonction
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2003
    Messages : 4 112
    Points : 7 037
    Points
    7 037
    Par défaut
    Toujours les mêmes insultes de la par du centre de contrôle
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Make it real not fantasy.

  12. #12
    Membre habitué
    Homme Profil pro
    Inscrit en
    janvier 2003
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : janvier 2003
    Messages : 109
    Points : 194
    Points
    194
    Par défaut
    pour autant la fonction "getDate()" est bien prise en compte dans les commandes SQL de Windev dixit l'aide en ligne

    alors comment fait-on pour récupérer la date/heure du serveur HFSQL C/S dans une requête, est-ce au moins possible au vue de la pauvreté des commandes/fonctions disponibles en HFSQL ??
    Cordialement JeAn-PhI

  13. #13
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    mutlitâche-multifonction
    Inscrit en
    juin 2003
    Messages
    4 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : mutlitâche-multifonction
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : juin 2003
    Messages : 4 112
    Points : 7 037
    Points
    7 037
    Par défaut
    Bonjour,

    Bonne question !

    Je n'ai pas essayé de faire la requête depuis Windev. Je ne sais pas comment le moteur SQL HFCS fonctionne. Je me demande si le moteur SQL de WD ne serait pas différent de celui de HFCS, en ce sens qu'il (pourrait) transforme(r) les requêtes envoyées au moteur HFCS...
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Make it real not fantasy.

  14. #14
    Membre confirmé
    Avatar de Narwe
    Homme Profil pro
    Développeur informatique
    Inscrit en
    février 2013
    Messages
    223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : février 2013
    Messages : 223
    Points : 573
    Points
    573
    Par défaut
    Cette requête fonction (renvoi date et heure)
    (J'ai essayé de rajouter cette instruction dans ma requête mais ça ne ralenti pas les exécution suivantes.)

  15. #15
    Membre habitué
    Homme Profil pro
    Inscrit en
    janvier 2003
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : janvier 2003
    Messages : 109
    Points : 194
    Points
    194
    Par défaut
    bonjour,

    cela renvoi la date/heure du client ou du serveur ?

    mettre une heure différente sur le client et comparé avec l'heure du serveur et donner la réponse ici svp merci
    Cordialement JeAn-PhI

  16. #16
    Membre confirmé
    Avatar de Narwe
    Homme Profil pro
    Développeur informatique
    Inscrit en
    février 2013
    Messages
    223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : février 2013
    Messages : 223
    Points : 573
    Points
    573
    Par défaut
    C'est la date du serveur (ce qui me paraît logique).

  17. #17
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    octobre 2019
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : octobre 2019
    Messages : 16
    Points : 29
    Points
    29
    Par défaut
    Bonjour,

    Pour optimiser, utilisez les données qui sont en cache : Vous mesurerez le temps de traitement.
    Sinon, vous allez mesurer le temps de chargement des données (entre votre disque et la ram de votre poste).

    Si vous avez besoin de faire monter des données en cache dans votre appli, vous pouvez utiliser la fonction 'hoptimise' (dans une tache planifié, par exemple).

    Si votre application a vocation à grossir, prévoyez de migrer vers un autre SGBD : HF est super pour démarrer, mais à ses limites.

Discussions similaires

  1. [AOP] Logger les temps d'exécution des requêtes
    Par HadanMarv dans le forum Spring
    Réponses: 2
    Dernier message: 17/11/2014, 10h39
  2. Réponses: 10
    Dernier message: 20/10/2010, 11h56
  3. Erreur OEM 10gR2 - Temps d'exécution des requêtes
    Par fabien.morel2002 dans le forum Administration
    Réponses: 0
    Dernier message: 30/11/2009, 16h00
  4. Réponses: 6
    Dernier message: 11/03/2009, 11h26
  5. Réponses: 4
    Dernier message: 06/06/2008, 19h22

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