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 :

[c#][VS.NET 2K3]leger comparatif access et mysql


Sujet :

Windows Forms

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 8
    Par défaut [c#][VS.NET 2K3]leger comparatif access et mysql
    je viens de faire un petit test tout bete : insertion de 1000 données dans une boucle avec un DateTime pour voir le temps ....

    Dans les memes conditions :
    Insertion de 1000 lignes :
    Mysql : ~26sec
    Access : ~0.6sec

    envoit d'un select avec ExecuteNonQuery sur les tables qui contenait les 3000 'a' inserés ( le ExecuteNonQuery c'est parce que je voulais juste testé le temps de reponse )
    Mysql : ~1.2sec
    Access : ~0.6sec

    j'avou que je ne sais que penser de ce test ...
    soit j'ai un probleme avec mysql sur mon pc ( Win XP SP2 avec 1go de ram et VS.NET qui tournait pendant les test et 2 boutons qui faisaient les test, lancé chacun son tour alternativement plusieurs fois afin d'obtenir ces moyennes )

    je veux bien filer le code qui est tout simple si quelqu'un souhaite tester si mon pc part en vrac ou si Access 2003 est reellement mieux que mysql sur des requetes simples .

    Si je trouve du temps j'essairais de faire un bench plus précis avec plus de tests.

    Il serait également interessant de tester cela sur d'autres environnements... car peut etre que le dll mysql est le résponsable de ces performances ... assez risibles

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Pour accéder à MySQL, tu passes par du réseau, ce qui expliquerait un petit temps de latence mais là, je trouve cela enorme.....


    Montre nous ton code svp

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 8
    Par défaut
    Mysql
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    		MySql.Data.MySqlClient.MySqlCommand CdeMy = Connection.CreateCommand();
     
    			DateTime start = DateTime.Now; 
    			int i=0;
    			while ( i< 1000)
    			{
     
    				CdeMy.CommandText = "insert into test values ('a')";
    				CdeMy.ExecuteNonQuery();
    				i++;
    			}
     
     
    			TimeSpan dur = DateTime.Now - start;
    			textBox2.Text= dur.ToString();
    			Connection.Close();
    et access
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    	System.Data.Odbc.OdbcCommand testCde = odbcConnection1.CreateCommand();
    			DateTime start = DateTime.Now; 
    			int i=0;
    			while (i<1000)
    			{
    				testCde.CommandText= "insert into test values ('a')";
     
    				testCde.ExecuteNonQuery();
    				i++;
     
    			}
     
    			TimeSpan dur = DateTime.Now - start;
    			textBox2.Text= dur.ToString();
    			this.odbcConnection1.Close();
    voila ....
    comme tu peux le voir , je ne fais rien de specialement compliqué

    PS : le serveur mysql est un serveur windows tournant sur mon pc ...
    ok certes j'ai des trucs qui tournent , mais ils tournent egalement en meme temps que access...
    je n'ai que cette base de test d'installé

    je ne comprends pas !

  4. #4
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Effectivement, c'est relativement simple comme code

    Je vois pas trop pkoi c'est aussi lent, c'est pas normal

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 8
    Par défaut
    tu te sentirais de tester ?!

  6. #6
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Si tu as les code complet, pkoi pas

  7. #7
    Membre éclairé Avatar de toxine
    Inscrit en
    Juin 2004
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juin 2004
    Messages : 78
    Par défaut
    c'est très bizarre effectivement.

    ta table test en MySQL est InnoDB ou myisam ?
    tu utilises quel connecteur .NET ?
    est ce que tu as activé les options de debug sous MySQL ?

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 8
    Par défaut
    @morpheus :
    bin en fait je n'ai pas de programme, je faisais seulement des tests d'insertion de données sur mysql et access pour voir la vitesse, donc il ne manque que les données de la connexion et les 2 dbs avec la table test (test) , apres suffit d'utiliser les 2 boucles dans 2 boutons differents ( j'ai fait comme ca pour les lancer d affiler , chacun leur tour , etc )

    @toxine : non j'ai dl ca :
    http://dev.mysql.com/downloads/connector/net/1.0.html
    l'api de mysql ...
    tout betement ...
    c'est pour ça que je me grat-grat depuis qques jours !
    ^^


    edit : pour toxine : c'etait inno DB, je ne sais pas pourquoi c'etait crée comme cela par defaut, j'ai testé en Myisam ... ET CA CHANGE TOUT !

    /me retourne se gratter

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 8
    Par défaut
    j'ai ma reponse pour inno et myisam

  10. #10
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Citation Envoyé par megatof
    @ET CA CHANGE TOUT !
    C'est à dire :
    Les résultats sont mieux/changés :

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 8
    Par défaut
    et bien .... les resultats passent legerement en dessous en temps par rapport à access !
    c'est quand meme beaucoup mieux !

  12. #12
    Membre éclairé Avatar de toxine
    Inscrit en
    Juin 2004
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juin 2004
    Messages : 78
    Par défaut
    A ce que j'ai compris, ton programme n'as pas besoin de gérer les transactions donc passe toute tes tables en MyISAM, c'est bien plus rapide.

  13. #13
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2002
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 83
    Par défaut
    Bonjour,

    Pourquoi passes-tu par une connection ODBC pour attaquer ta base Access, au lieu d'utiliser OLEDB ?

    Merci d'avance.

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 8
    Par défaut
    @toxine : en fait , je suis en train de me former le soir sur le C# et ses composants
    pour le moment je ne fait que des mini programmes pour me faire la main, et c'est en faisant cela que j'ai rencontré ce probleme !
    mais merci pour les conseils


    @nostradamus : sur ce que j'ai pu comprendre et tester, pour une connexion oledb il faut creer la connexion access dans tes connexions odbc windows. alors que avec odbc j'ai pu acceder au fichier directement avec son chemin, et cela marche egalement sur un poste ne contenant pas access !

    mais bon je peux me tromper et ne pas avoir reussi à utiliser correctement oledb

  15. #15
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Par défaut
    http://www.connectionstrings.com/

    Access / OLEDB

    Directement sur un fichier :)

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 8
    Par défaut
    Merci maniak pour l'info !

    par contre : laquelle des 2 vaut-il mieux utiliser ?!

    *merci*

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

Discussions similaires

  1. [1.1][VB.NET] Travailler avec MS Access
    Par Nayas dans le forum Accès aux données
    Réponses: 2
    Dernier message: 15/11/2006, 20h00
  2. [VB.NET]Afficher des données Access
    Par mael94420 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 05/10/2006, 08h11
  3. [VB.Net] Créer une DataBase Access
    Par toubib dans le forum Windows Forms
    Réponses: 7
    Dernier message: 09/10/2005, 19h27
  4. [VB.NET] Imprimer des états access
    Par bambou dans le forum Windows Forms
    Réponses: 6
    Dernier message: 25/07/2004, 16h52
  5. [ADO] [C#] [VB.NET] Compresser une BD Access par .NET
    Par olivierx dans le forum Accès aux données
    Réponses: 4
    Dernier message: 09/03/2004, 09h42

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