Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/04/2006, 09h23   #1
Membre à l'essai
 
Inscription : avril 2004
Messages : 53
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 53
Points : 23
Points : 23
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ô.
theclear est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2006, 09h27   #2
Membre à l'essai
 
Inscription : avril 2004
Messages : 53
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 53
Points : 23
Points : 23
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
theclear est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2006, 19h16   #3
Invité de passage
 
Inscription : avril 2006
Messages : 1
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 1
Points : 1
Points : 1
Envoyer un message via MSN à d_hanae
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
d_hanae est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2006, 09h27   #4
Membre à l'essai
 
Inscription : avril 2004
Messages : 53
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 53
Points : 23
Points : 23
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 :
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
theclear est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h58.


 
 
 
 
Partenaires

Hébergement Web