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

Windows Forms Discussion :

VB.Net 2008 / MySQL avec mysql.data 5.0.7


Sujet :

Windows Forms

  1. #1
    Membre confirmé Avatar de romulus
    Inscrit en
    Juin 2005
    Messages
    129
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Juin 2005
    Messages : 129
    Par défaut VB.Net 2008 / MySQL avec mysql.data 5.0.7
    Contexte : VB.Net 2008 / MySQL avec mysql.data 5.0.7 (sur un même poste)

    Bonjour, j'utilise VB.Net 2008 et attaque une BDD MySQL 5.1.

    J'ai (entre autres) une table composée de 36 colonnes et contenant un peu plus de 3000 enregistrements.

    Lorsque je fais un select sur cette table pour afficher tous les enregistrements dans Query Browser => le temps de réponse est de 0.33 secondes.

    La même opération pour remplir un dataset via l'instruction fill entraîne un temps de réponse de presque 40 secondes !!!

    Est-ce un problème lié à la version du connecteur ? Quelqu'un a-t-il une idée du soucis et de la façon de le résoudre car c'est carrément catastrophique pour le bon fonctionnement de mon appli...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
                Dim mycon As New MySql.Data.MySqlClient.MySqlConnection("datasource=" + IPDBSERVER + ";username=" + DBLOGIN + ";password=" + DBPASS + ";database=" + DBNAME + "")
                Dim myadp As New MySql.Data.MySqlClient.MySqlDataAdapter("SELECT ID,CHAMP1,CHAMP2,CHAMP3.... CHAMP35 FROM MATABLE", mycon)
                Dim myds = New DataSet()
     
                myadp.Fill(myds, "TABMATABLE")
    Merci de votre aide...

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    je ne cois pas que mysql est géré par .net en natif, et donc ca doit etre la dll qui ralenti

    pourquoi ne pas utiliser sql server d'ailleurs ?

    sinon le dataset est quelque chose de pas très rapide à la base mais pas à ce point là je pense (ca doit prendre plusieurs secondes quand meme)

    essaye la meme requete avec un datareader en lisant les données pour voir le temps que ca prend
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre confirmé Avatar de romulus
    Inscrit en
    Juin 2005
    Messages
    129
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Juin 2005
    Messages : 129
    Par défaut
    Pour commencer, petit rectificatif, la base MySQL est distante, pas sur mon poste...

    j'ai effectué une modif provisoire de mon code pour tester avec un datareader.... en plus d'avoir l'inconvénient de monopoliser la connexion, le temps de réponse passe de 40 à 70 secondes !!

    En fait, je remplis une variable tableau avec le contenu de ma table... Pour éviter de faire un Redim Preserve, j'ai commencé par exécuter un count afin de faire un Redim une seule fois avant de lancer le datareader...

    Donc, j'abandonne cette solution

    Je ne suis pas à l'origine du dév de cette appli et j'essaie de l'optimiser au max., mais je crois que je ne vais pas couper de devoir refondre une bonne partie du code...

    D'ici là, si vous voyez une piste ou une solution

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 202
    Par défaut
    le datareader plus lent que le dataset, on aura tout vu

    m'enfin ca doit etre faisable de remplacer mysql par sql server (qui existe aussi en version gratuite)
    .net doit etre bien optimisé pour sql server
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre confirmé Avatar de romulus
    Inscrit en
    Juin 2005
    Messages
    129
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Juin 2005
    Messages : 129
    Par défaut
    Malheureusement, il m'est impossible de migrer sur SQLServer (pas par choix mais par obligation)

  6. #6
    Membre Expert Avatar de fregolo52
    Homme Profil pro
    Développeur C
    Inscrit en
    Août 2004
    Messages
    2 366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Août 2004
    Messages : 2 366
    Par défaut
    Je suppose que tu utilises mysql_connector.

    As-tu testé ton bout de code dans le projet d'exemple : TableEditor.

    Je mets environs 3secondes pour remplir une table de 70 000 lignes et 13 colonnes. (et 1.6 secondes avec MySQL Query Browser)

    J'ai juste regardé vite fait .NET, je développe en C.
    Ma conf : MySQL 5.0 et mysql.data 5.2.3

  7. #7
    Membre confirmé Avatar de romulus
    Inscrit en
    Juin 2005
    Messages
    129
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Juin 2005
    Messages : 129
    Par défaut
    non, mais je te remercie de cette info, mon mysql.data est plus ancien : 5.0.7... je dois partir mais je vais regarder ça lundi

    Merci

  8. #8
    Membre confirmé Avatar de romulus
    Inscrit en
    Juin 2005
    Messages
    129
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Juin 2005
    Messages : 129
    Par défaut
    Re,

    Je n'ai pas eu le temps de faire un test avec TableEditor mais j'ai changé de connecteur pour passer sur le 5.2.3 et j'ai optimisé mon code de façon à ne pas charger la table sans conditions... et je passe à une dizaine de secondes

    Merci, je considère que le sujet est résolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 02/04/2016, 14h39
  2. Réponses: 5
    Dernier message: 10/01/2010, 01h34
  3. Réponses: 2
    Dernier message: 30/10/2008, 17h01
  4. [Mysql] Utiliser Mysql avec C# et VS2005
    Par BaNaNe002 dans le forum C#
    Réponses: 2
    Dernier message: 21/07/2007, 14h45

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