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

Conception Web Discussion :

Amélioration de performances appli web


Sujet :

Conception Web

  1. #1
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 9
    Points : 8
    Points
    8
    Par défaut Amélioration de performances appli web
    Bonjour,
    J'ai une application web développée en PHP sur un serveur en Australie (pour l'exemple).
    Un client en France s'authentifie sur cette app pour obtenir des graphiques de statistiques. L'app. va alors faire des requêtes sur la base de données du client (en France), récupérer les données, les traiter, les mettre en forme et retourner les éléments pour l'affichage des graphiques, tous cela via un VPN.

    Les nombreuses requêtes et aller/retour font que l'affichage du résultat n'est pas performant.
    J'avais, dans un premier temps imaginé que le serveur aurait pu renvoyer une vue au client avec la liste des requêtes et la fonction de traitement et de mise en forme en JS, pour que le client initie une connexion à sa DB en local, que le traitement soit local puis affichage. Ce n'est à priori pas possible.

    A défaut, et à minima, je préconise l'utilisation de procédures stockées sur la DB du client plutôt que faire appel à des requêtes.
    Que me conseilleriez-vous pour améliorer les temps de traitement.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Pourquoi les données transitent-elles par le VPN ? Pourquoi ne pas faire un site Web Confidentiel avec des graphs JS qui se servent de modèles JSON? Avec la norme JSONP, tu devrais pourquoi requêter AJAX sur un site externe, et ça devrait être rapide.
    Dernière modification par NoSmoking ; 02/05/2015 à 17h12. Motif: Inutile de citer la réponse pour y répondre.

  3. #3
    Membre éprouvé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2009
    Messages : 552
    Points : 1 060
    Points
    1 060
    Par défaut
    Citation Envoyé par JYDARTHA Voir le message
    A défaut, et à minima, je préconise l'utilisation de procédures stockées sur la DB du client plutôt que faire appel à des requêtes.
    Que me conseilleriez-vous pour améliorer les temps de traitement.
    Essayer de mettre en cache les résultats de tes requêtes et pré-calculer un maximum?

  4. #4
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    Bonjour,
    Je ne saisi pas bien votre proposition. Qu'elle serais l'utilité de mettre les résultats en cache? Les requêtes se font sur la DB du client et les données sont en permanence mise à jour dans sa DB.
    Merci de m'éclaircir

  5. #5
    Membre éprouvé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2009
    Messages : 552
    Points : 1 060
    Points
    1 060
    Par défaut
    Vous parlez de procédure stockée, j'imagine donc que les sélections ne sont pas triviales.

    Mettre en cache permet deux choses :
    - Recharger plus rapidement
    - Pré-calculer des résultats (c'est la même chose qu'un cache à la demande, sauf que le calcul ne se fait pas à la demande). Toutes les minutes, on calcule les statistiques => Quand le client consulte, il n'y a pas de calcul

    Après, imaginez que vous ayez un système qui enregistre des événements datés et que vous fassiez des statistiques par mois : Seules les statistiques sur le mois courant changent, inutile de refaire en permanence les calculs sur les mois passés.

    Si vous voulez des performances, en règle générale, il faut calculer un minimum à la consultation. Les calculs de statistiques peuvent vite couter cher.

  6. #6
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    En effet, très intéressant. Je vais chercher de la doc oracle sur le sujet. Merci.

  7. #7
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 9
    Points : 8
    Points
    8
    Par défaut
    Après quelques recherches, je comprends que la mise en cache des résultats se fait par défaut. Par contre je ne vois pas grand chose sur le pré-calcul, qui est une sorte de rafraîchissement si je comprends bien. Auriez-vous de la doc à me conseiller SVP?

  8. #8
    Membre éprouvé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2009
    Messages : 552
    Points : 1 060
    Points
    1 060
    Par défaut
    Il n'y a pas de notion de "vue matérialisée" (MATERIALIZED VIEW) dans ORACLE?

    Après, pour ma part, j'ai tendance à mettre en cache les JSON (ou autre) que je renvoie au client WEB. Là, ce sont les mécanismes de cache des frameworks PHP ou encore des reverse proxy type Varnish qu'il faut étudier.

Discussions similaires

  1. Réponses: 5
    Dernier message: 29/10/2009, 12h25
  2. Réponses: 0
    Dernier message: 28/10/2009, 15h10
  3. Optimisation performance accès BD pour appli Web
    Par killysui dans le forum ASP.NET
    Réponses: 10
    Dernier message: 23/06/2008, 14h23

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