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
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    avril 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2015
    Messages : 8
    Points : 8
    Points
    8

    Par défaut Accélérer le temps de la réponse d'une requête

    Bonjour,
    Je suis entrain de développer une application web jee qui a comme base de données MySql, le problème c'est que dans ma jsp je charge les données depuis la base de données et ça prend beaucoup de temps meme si j'ai dejà essayé l'indexation.
    Comment faire pour accélérer le temps de la réponse ?

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Ingénieur d'études décisionnel
    Inscrit en
    mai 2002
    Messages
    8 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'études décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 8 127
    Points : 26 147
    Points
    26 147

    Par défaut

    Commençons par voir où se trouve le problème...
    Qu'est-ce qui prend du temps : le chargement du résultat via l'application web ou l'exécution de cette requête sur le serveur de base de données ? As-tu comparé ces temps d'exécution ?

    Si tu souhaites recevoir de l'aide pour l'optimiser, il faudrait présenter ta requête, les tables qu'elle interroge, leur volumétrie et les index qui existent sur celles-ci.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    avril 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2015
    Messages : 8
    Points : 8
    Points
    8

    Par défaut

    Bonjour,
    pour mieux comprendre mon état, j'ai une table historique avec des milliers d'enregistrements.
    au niveu de la jsp par exemple j'ai cette requête:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	<sql:query dataSource="${webchronot2}" var="rs">  
       							 select HOUR(TIMEDIFF( max(histo_time), min(histo_time))) AS DateDiff from historique
     							WHERE histo_time >= DATE_SUB(NOW(), interval 48 hour) and card like ?
    							<sql:param value="${card}" />
     
     	</sql:query>
    Le problème c'est que quand je veux chercher soit par nom par exemple ou par num de card la réponse prend beaucoup de temps. Je comprends que la requête passe par toute la table pour trouver ce qu'on cherche mais est ce qu'il y a pas moyen pour optimiser le temps ?

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    janvier 2010
    Messages
    5 213
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : janvier 2010
    Messages : 5 213
    Points : 10 782
    Points
    10 782

    Par défaut

    bonjour,


    essayez de poser un index sur le couple (histo_time, card)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE INDEX IX_historique_histoTime ON historique(histo_time, card)

  5. #5
    Rédacteur
    Avatar de SQLpro
    Homme Profil pro
    Expert SGBDR & SQL, spécialiste Microsoft SQL Server
    Inscrit en
    mai 2002
    Messages
    19 003
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert SGBDR & SQL, spécialiste Microsoft SQL Server
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 19 003
    Points : 44 655
    Points
    44 655

    Par défaut

    Le problème est que si le like au final est '%ABC%' cet index ne servira jamais en recherche !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *

Discussions similaires

  1. [AC-97] Temps de réponse d'une requête lancée en réseau
    Par niko8181 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 05/10/2009, 17h56
  2. Réponses: 2
    Dernier message: 02/04/2009, 18h01
  3. accélérer le temps de réponse d'une requête
    Par cool dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 23/01/2008, 12h34
  4. Comment optimiser les temps de réponse d'une requête ?
    Par renaudjuif dans le forum Requêtes
    Réponses: 3
    Dernier message: 19/02/2007, 14h12
  5. Réponses: 2
    Dernier message: 10/01/2007, 17h28

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