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

PostgreSQL Discussion :

rapidité comparée: PostgreSQL/MySQL


Sujet :

PostgreSQL

  1. #1
    Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Avril 2004
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 64
    Points : 46
    Points
    46
    Par défaut rapidité comparée: PostgreSQL/MySQL
    Bonjour,

    dans le cadre d'une étude de rapidité des différents SGBD disponibles, j'ai réalisé en C# un petit programme qui fait des requetes sur des BDD PostgreSQL et MySQL pour comparer les vitesses.
    Voila ce que j'obtiens.


    Les résultats sont exprimés en ms. Je fais tous les tests sur un serveur sauf les 2 intitulés local où bien sur je suis sur des bases en local.

    Or une si grande différence entre ces 2 SGBD me semble étrange.
    Des spécialistes m'ont dit que cela n'était pas du tout logique mais je n'en sais pas plus.

    Quelqu'un aurait-il une idée pour améliorer la configuration de Postgre
    J'ai Postgre 8.1, Easyphp 1.8. Installé sur le serveur et sur la machine cliente.

    Voila merc d'avance pour votre aide.
    Tchô.

  2. #2
    Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Avril 2004
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 64
    Points : 46
    Points
    46
    Par défaut
    Je viens de me rendre compte que mon explication n'est pas bien explicite sur le protocole de test.

    Je réalise x fois des entrées dans mes bases. x est le "nombre d'entrées".
    J'ai une table "destination" avec 2 champs "id-destination" et "destination". J'entre x fois la destination spécifiée dans la BDD avec comme id_destination "1". Oui ca n'a pas grand sens mais c'est juste un test. ^^

    J'ouvre ma connexion une fois.
    Je fais ma boucle sur la requete souhaitée
    Je ferme ma connexion.

    Bye

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut demande d'information
    je m'excuse de ne pas pouvoir te porter d'aide sur ton prb , mais puisque t'as déjà utilisé c# avec postgreSQL j'espere que tu vas m'aider car j'ai un prbs pour établir la connexion entre eux... donc si tu peux m'envoyer des fragments de code pour me simplifier la tache je te serai tres reconnaissante

  4. #4
    Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Avril 2004
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 64
    Points : 46
    Points
    46
    Par défaut
    Salut

    Oui je peux tout faire !

    Il y a 2 solutions : ODBC ou drivers natifs.

    Le natif est visiblement plus rapide ce qui est logique
    Tu chopes donc sur le site postgres les drivers natifs (.NET Date Provider)

    Dans visual apres faut faire Projet>Ajouter une référence>parcourir>...

    Une fois que t'a chargé ton fichier, il apparait dans la barre d'outils et la tu peux mettre ce que tu veux un pgConnexion ou un pgCommand.
    Moi je l'ai fait manuellement:


    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    string source4 = "Server='"+IpServer+"';Port=5432;Password='"+Mdp+"';User Id='"+Login+"';Database='"+Base1+"';";
     
    			try
    			{
    				Npgsql.NpgsqlConnection conn3 = new Npgsql.NpgsqlConnection(this.pgSqlConnection2.ConnectionString);
    			{
    				// Ouverture de la connexion
    				conn3.Open();
     
    				//
    				//1ere REQUETE INSERT
    				//
     
    				int i=0;
    				dl=DateTime.Now;
     
    				while(i<Iteration)
    				{
    					//Insertion dans la table folio
    					string sql1 = "INSERT INTO destination VALUES (1,'"+Adresse.Text+"')";
    					Npgsql.NpgsqlCommand cmd1 = new Npgsql.NpgsqlCommand(sql1, conn3);
    					int res1 = cmd1.ExecuteNonQuery();
    					i++;
    				}
     
    				dl2=DateTime.Now;
     
    				System.TimeSpan diff1=dl2.Subtract(dl);
     
     
    				label13.Text=format(diff1);
     
    				//
    				//2ème REQUETE SELECT
    				//
     
    				dl=DateTime.Now;
     
    				//Insertion dans la table folio
    				string sql2 = "SELECT * FROM destination";
    				Npgsql.NpgsqlCommand cmd2 = new Npgsql.NpgsqlCommand(sql2, conn3);
    				int res2 = cmd2.ExecuteNonQuery();
     
    				dl2=DateTime.Now;
     
    				System.TimeSpan diff2=dl2.Subtract(dl);
     
     
    				label14.Text=format(diff2);
     
    				//
    				//3ème REQUETE DELETE
    				//
     
    				dl=DateTime.Now;
     
    				//Insertion dans la table folio
    				string sql3 = "DELETE FROM destination";
    				Npgsql.NpgsqlCommand cmd3 = new Npgsql.NpgsqlCommand(sql3, conn3);
    				int res3 = cmd3.ExecuteNonQuery();
     
    				dl2=DateTime.Now;
     
    				System.TimeSpan diff3=dl2.Subtract(dl);
     
    				label15.Text=format(diff3);		
     
    				// Fermeture de la connexion
    				conn3.Close();
     
    			}//using
     
     
    			}//try
    			catch(Exception ex)
    			{
    				MessageBox.Show("Connexion à la base de données2 impossible : "+ex.Message.ToString(), "Erreur de connexion");
    			}//catch
    Bon courage n'hesite pas à me recontacter si t'arrives pas ^^

    Bye

Discussions similaires

  1. postgresql & mysql
    Par ferjani.kais dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 25/11/2007, 20h50
  2. installer postgresql + mysql
    Par aries44 dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 14/11/2007, 22h02
  3. Réponses: 2
    Dernier message: 20/08/2005, 12h53
  4. Tests de perf Oracle/PostgreSQL/MySQL
    Par champijulie dans le forum Décisions SGBD
    Réponses: 18
    Dernier message: 05/08/2005, 16h35
  5. Postgresql --> Mysql
    Par kortex dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 02/03/2004, 14h59

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