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

4D Discussion :

connexion 4d et mysql


Sujet :

4D

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Points : 1 053
    Points
    1 053
    Par défaut connexion 4d et mysql
    Salut à tous.
    Je suis en train de faire des méthodes d'export d'une base 4d vers du mysql et du firebird.
    Bizarrement, avec mysql c'est extremement lent. 10 000 insertions prennent environ 4 minutes que ce soit par connexion odbc ou avec le plugin mysql pour 4d. Alors que firebird prend 30 secondes avec exactement les mêmes enregistrements par connexion odbc.
    Si quelqu'un a déja constaté ce genre de problème, pourrait-il m'expliquer d'où il provient?

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 15
    Points : 18
    Points
    18
    Par défaut
    Bonjour,

    On ne peut pas répondre de but en blanc à ce type de question, car ce que vous observez peut provenir de bien des sources différentes, probablement combinées.


    Ce qui est certain, c'est que le plugin natif devrait montrer des perfs nettement supérieures à celles d'ODBC. Quant à firebird, il est probable qu'il soit en local, ce qui rend la comparaison sans intérêt.


    Pouvez-vous me transmettre les infos suivantes :

    - version/plateforme de 4D
    - version/plateforme de 4D for MySQL
    - version/plateforme de MySQL
    - code 4D utilisé pour effectuer les inserts
    - structure de la table mysql en question.

    Cordialement

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 103
    Points : 67
    Points
    67
    Par défaut
    bonjour,
    j'utilise ausis le plugin 4D (v. 2004) for MySQL et j'ai pu remarqué qu'il est très sensible à la façon de l'utiliser pour avoir des perfs correctes...
    pour le moment je ne suis toujours pas arrivé à une solution vraiment performante mais si qq'un à des conseils je suis preneur aussi

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 15
    Points : 18
    Points
    18
    Par défaut
    Bonjour,

    Est ce que la version de votre 4D est la 2004.4 ?

    Afin de pouvoir vous donnez quelques conseils j'aurais besoin de plus d'infos :
    -Le code 4D utilisé pour effectuer les inserts
    -La structure de la table mysql en question.

    Cordialement

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Points : 1 053
    Points
    1 053
    Par défaut
    Pour les versions, je vais me contenter de dire: "les dernières pour tout".
    Ensuite, la base firebird est certes en local mais la base mysql aussi alors...
    La structure c'est une seule table avec des champs simples de taille fixe (coté 4D comme firebird/mysql) et sans aucune clé étrangère (mais une clé primaire).
    Les procédures de test sont rigoureusement identiques (10 000 inserts dans la base distante, on vire tous les programmes en tache de fond).
    Pour ce qui est du code, j'ai peur qu'il ne soit pas très parlant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    ODBC LOGIN
     
    TOUT SELECTIONNER([CommandsToSend])
     
    Tant que (Non(Fin de selection([CommandsToSend])))
    	ODBC EXECUTER([CommandsToSend]Command)
    	ENREGISTREMENT SUIVANT([CommandsToSend])
    Fin tant que 
     
    ODBC LOGOUT
     
    TOUT SELECTIONNER([CommandsToSend])
    SUPPRIMER SELECTION([CommandsToSend])
    Mes commandes sql sont stockées dans une table (disons qu'elles arrivent la par la volonté divine) et je les envoie en boucle.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 15
    Points : 18
    Points
    18
    Par défaut
    Bonjour,

    -Je suppose que le code que vous m'avez envoyé est la méthode d'export de 4D vers Firebird. Est ce bien le cas?

    J'aurais besoin que vous m'envoyez :

    -Les requêtes qui sont stockées dans la table [CommandsToSend].
    -Le code que vous faites avec le plugin 4D for MySql.

    Cordialement

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Points : 1 053
    Points
    1 053
    Par défaut
    Exemple de code sql:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    insert into Client(Nom,Prenom,NumTVA) values ('dubois','bernard',234);
    Il y en a 10 000 comme ca avec des valeurs différentes.
    Le code en 4d for mysql je ne l'ai plus, mais j'ai fait au plus simple (remplacé les commandes odbc par leurs alias en mysql).
    Mais franchement je ne vois pas ce que ca change. Si je dis que les procédures de tests étaient les mêmes elles étaient les mêmes, et je ne vois pas en quoi j'aurais pu ralentir le processus au niveau du code (en tous cas je ne ferme pas la connexion entre chaque requête).

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 15
    Points : 18
    Points
    18
    Par défaut
    Bonjour,

    -4D fonctionne en mode Asynchrone cela peut provoquer quelques ralentissements je vous conseille donc d'utiliser la commande ODBC SET OPTION
    afin de passer en mode Synchrone.
    Voici le lien de la doc de cette commande:
    http://4d.developpez.com/documentati...F/CMF00818.HTM

    -Si vous voulez optimiser MYSQL je vous conseille cette documentation dont voici le lien :
    http://dev.mysql.com/doc/refman/5.0/...imization.html


    Cordialement

Discussions similaires

  1. connexion à une bdd mysql en asp
    Par asetti dans le forum ASP
    Réponses: 3
    Dernier message: 31/10/2005, 18h31
  2. [BDD] Erreur dans la connexion à une base MySQL
    Par dodo10 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 24/01/2005, 19h52
  3. [JSP] Connexion à une base mysql
    Par Jovial dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 20/04/2004, 14h04
  4. Problème de connexion au serveur MYSQL
    Par ETOKA dans le forum Outils
    Réponses: 2
    Dernier message: 27/11/2003, 09h28
  5. [JBuilder]connexion postgres ou mysql via DataExpress
    Par rebolon dans le forum JBuilder
    Réponses: 12
    Dernier message: 07/08/2003, 16h45

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