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

WinDev Discussion :

[WD24] Un projet test de performance bdd


Sujet :

WinDev

  1. #1
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 384
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 384
    Points : 9 745
    Points
    9 745
    Par défaut [WD24] Un projet test de performance bdd
    Bonjour,

    Je voudrais réaliser un petit projet qui me permettrait de réaliser des tests de performances sur plusieurs moteurs de bases de données.

    L'idée serait de ne faire qu'un programme, qui, en fonction de paramètres de connexion, se connecterait à un serveur de données, sur une base de données.
    Les bases auraient exactement la même strucure, et les mêmes données.
    Je déterminerai un certain nombre de traitement, dont je mesurerai les temps afin de me donner une idée des performances de moteur.

    D'après vous, est-ce réalisable ? Avec une seule analyse ? Quel sont les risques ?

    Pour info, les moteurs que je pense comparer, sont : HFSQL C/S, MySQL et PostgreSQL.

    Merci de vos avis éclairés

    JS
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

  2. #2
    Membre éclairé
    Avatar de Narwe
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    253
    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 : 253
    Points : 668
    Points
    668
    Par défaut
    C'est tout à fait possible mais attention car si on ne prend que MySQL, il y aura différents résultat pour un même traitement selon :
    - Si on utilise l'accès natif ou non (fonction H* ou SQL*)
    - Si on utilise une requete ou non (fonction HLit* ou HExecuteRequete ou HExecuteRequeteSQL(*, hRequeteDefaut,*) ou HExecuteRequeteSQL(*, hRequeteSansCorrection,*) ou SQLExec)

    Et pour l'ajout / modification des données on sera confronté aux mêmes différences si ce n'est que MySQL permet de réaliser des requête d'UPDATE plus complexe que HFC/S (requête d'UPDATE avec jointure).

    Et pour des traitements de calcul précédents une mise à jour de la base de données (typiquement des calculs nocturnes de statistiques remplissant une table Resultat), il y aura une différence entre un programme qui fera plusieurs requêtes au serveur de données et les calculs via le programme Windev ou un l'utilisation d'une procédure stockée qui fera les calculs et les écritures au sein même du SGBD.

    Le but est-il de comparer les différents SGBD pour en choisir un ou déterminer la meilleurs façon de programmer pour pouvoir utiliser indifféremment l'un ou l'autre de ces SGBD ?
    Si c'est la première raison jusqu'à quel point le développeur est prêt à modifier ces habitudes de codage pour optimiser ces traitements ?
    Si c'est la première raison jusqu'à quel point le développeur est-il prêt à éventuellement exceptionnellement s'autoriser des fonctionnements spécifique selon le SGBD ?

  3. #3
    Membre extrêmement actif Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Avril 2011
    Messages
    4 384
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2011
    Messages : 4 384
    Points : 9 745
    Points
    9 745
    Par défaut
    Merci de ta réponse.

    Le but est de ne pas faire le mauvais choix. Le développeur (ce sera moi ) n'a pas d'apriori sur le choix de la base de données.

    Je dois redévelopper un ERP pour remplacer celui qui a été développé avec WinDev 5.5 et des bases DBF.

    Donc, avant de me lancer, je cherche à savoir quelle est le moteur de bases de données le plus à même de satisfaire aux besoins. Un des points qui revient, c'est la vitesse. Le confort du développeur vient après .

    Comme l'outil de développement sera WinDev 24, j'imagine que le moteur HFSQL C/S est le plus adapté, mais est-ce qu'en terme de performances, de maintenances et de traitements en procédures stockées. Il y aura, bien évidemment, des traitements qui se feront la nuit, périodiquement. Donc, il me faut déterminer lequel des ces moteurs est le plus adapté.

    Autre question, en parcourant le net, j'entends beaucoup parler de MaraDB. Est-ce vraiment une alternative possible et valable à MySQL ?
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 411
    Points : 434
    Points
    434
    Par défaut
    hchangeconnexion()

  5. #5
    Membre actif
    Homme Profil pro
    Inscrit en
    Janvier 2003
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 180
    Points : 275
    Points
    275
    Par défaut
    bonjour,

    sans hésitation MySQL ou PostgreSQL couplé à SQLManagerX (http://www.sqlmanagerx.com/telechargez-sqlmanagerx)
    Cordialement JeAn-PhI

  6. #6
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2003
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

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

    Informations forums :
    Inscription : Mai 2003
    Messages : 942
    Points : 1 933
    Points
    1 933
    Par défaut
    Bonjour,

    Sans aucune hésitation, postgresql qui évolue bien et dans le bon sens. J'ai jamais été fan de MySQL qui n'est au final pas du tout un SGBD gratuit contrairement à ce que l'on pourrait penser.


    @JeAn-PhI
    sans hésitation MySQL ou PostgreSQL couplé à SQLManagerX (http://www.sqlmanagerx.com/telechargez-sqlmanagerx)
    Beau placement de produit. Je me souviens avoir voulu utiliser SQLManagerX il y a un peu plus de 10 ans et j'avais, à l'époque, trouvé ça lourd. Aujourd'hui je l'ai réessayé et je trouve que c'est graphiquement totalement old school, ce qui laisse à penser que ce qu'il y a derrière n'a pas du beaucoup évoluer.

    Le problème des surcouches c'est le temps de traitement. Les couches d'accès aux données de windev sont déjà relativement lentes. L'exécution des requêtes semble être plus ou moins cohérente, mais la lecture et le remplissage d'un tableau est tellement lent par rapport à d'autres langages que rajouter une couche comme SQLManagerX ou autre ne me semble pas être une bonne solution.

    C'est mon avis , il n'est que personnel et totalement subjectif. Peut-être que je trompe, mais je n'ai pas le courage de faire des tests...
    Philippe,


    N'hésitez à lever le pouce si mon aide vous a été utile.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 140
    Points : 131
    Points
    131
    Par défaut
    bonjour
    j'ai utilisé une classe par le passé de sqlmanagerx afin d'attaquer des bases firebird.
    Globalement cela fonctionnait bien.

    Je me pose la même question aujourd'hui avec un usage mixte (selon le choix du client) postgresql / sqlserver.
    Comment s'y connecter, avoir le même code, les bons usages et sans passer par les accès natifs de pcsoft.

  8. #8
    Membre actif
    Homme Profil pro
    Inscrit en
    Janvier 2003
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 180
    Points : 275
    Points
    275
    Par défaut
    Citation Envoyé par philouZ Voir le message
    Bonjour,

    Sans aucune hésitation, postgresql qui évolue bien et dans le bon sens. J'ai jamais été fan de MySQL qui n'est au final pas du tout un SGBD gratuit contrairement à ce que l'on pourrait penser.


    @JeAn-PhI


    Beau placement de produit. Je me souviens avoir voulu utiliser SQLManagerX il y a un peu plus de 10 ans et j'avais, à l'époque, trouvé ça lourd. Aujourd'hui je l'ai réessayé et je trouve que c'est graphiquement totalement old school, ce qui laisse à penser que ce qu'il y a derrière n'a pas du beaucoup évoluer.

    Le problème des surcouches c'est le temps de traitement. Les couches d'accès aux données de windev sont déjà relativement lentes. L'exécution des requêtes semble être plus ou moins cohérente, mais la lecture et le remplissage d'un tableau est tellement lent par rapport à d'autres langages que rajouter une couche comme SQLManagerX ou autre ne me semble pas être une bonne solution.

    C'est mon avis , il n'est que personnel et totalement subjectif. Peut-être que je trompe, mais je n'ai pas le courage de faire des tests...
    Pour placer un produit il faut y avoir un intérêt (financier ou autre) hors je n'en ai aucun juste la satisfaction de son utilisation depuis plus de 10 ans, de plus c'est gratuit, concernant l'aspect graphique je ne vois pas le lien car ce sont des classes, le projet exemple ne sert que pour la prise en main et la mise en place du jeu de classes. les classes ont évolué quand cela a été nécessaire mais pas le projet exemple.
    ici cela n'utilise pas les couches d'accès aux données de windev mais une dll c++ pour implémenter la dll de mysql (libmysql.dll) donc pour moi cela me parait rapide, il ne s'agit pas ici de comparer à d'autres langage, la question concernait l'accès multibase avec windev donc une classe principale SQLManagerX pour uniformiser le code (remplace les fonction H de lecture/écriture/suppression pour accéder aux enreg de façon unitaire), une classe d'accès par base (permet de faire les requêtes) maintenant il est évident que je ne servirais pas de cela ni de windev d'ailleurs pour calculer une trajectoire de satellite.

    parcours de table par requête (lecture de chaque enreg sans affichage) :
    11 colonnes / 470 241 enreg : 11 sec
    154 colonnes / 116 852 enreg : 7 sec

    parcours de table par requête (lecture de chaque enreg avec affichage dans un champs table) :
    11 colonnes / 470 241 enreg : 21 sec
    154 colonnes / 116 852 enreg : 19 sec

    c'est suffisant pour moi et pour une appli de gestion en général
    Cordialement JeAn-PhI

  9. #9
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2003
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

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

    Informations forums :
    Inscription : Mai 2003
    Messages : 942
    Points : 1 933
    Points
    1 933
    Par défaut
    Je te rassure moi non plus je n'utiliserai pas Windev pour du scientifique. J'ai déjà du mal à l'utiliser pour afficher des stats pour les clients...

    parcours de table par requête (lecture de chaque enreg sans affichage) :
    11 colonnes / 470 241 enreg : 11 sec
    154 colonnes / 116 852 enreg : 7 sec

    parcours de table par requête (lecture de chaque enreg avec affichage dans un champs table) :
    11 colonnes / 470 241 enreg : 21 sec
    154 colonnes / 116 852 enreg : 19 sec
    Je dois avouer que c'est déjà beaucoup plus rapide que ce qu'est capable de faire PC Soft, ce qui est relativement grave étant donné qu'ils ont la main sur le code source et qu'ils développent en bas niveau.

    Cependant, à titre de comparaison, le parcours de 524 288 lignes avec remplissage d'un tableau en .NET prend moins de 2 secondes, soi plus de 11 fois plus rapide que SQLManagerX, quant à Windev il n'entre même pas dans la compétition. Le parcours simple des lignes prend à peine 500 ms.

    C'est là que Windev est mauvais à mon sens. Je trouve dommage que PC Soft n'ouvre pas les yeux et ne se mette pas à optimiser Windev...
    Philippe,


    N'hésitez à lever le pouce si mon aide vous a été utile.

Discussions similaires

  1. [MySQL] Test de performance général sur une application PHP
    Par Invité dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 30/06/2006, 17h36
  2. Réponses: 1
    Dernier message: 17/06/2006, 09h08
  3. [9iR2] : Test de performance
    Par debutant_oracle dans le forum Oracle
    Réponses: 2
    Dernier message: 22/02/2006, 16h22
  4. [Performances BDD] Où effectuer les traitements ?
    Par KiLVaiDeN dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 12/05/2005, 16h40

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