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 07/02/2011, 02h27   #1
Membre Expert
 
Avatar de Benoit_Durand
 
Benoit Durand
Consultant en Business Intelligence Freelance
Inscription : mars 2005
Messages : 812
Détails du profil
Informations personnelles :
Nom : Benoit Durand
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Consultant en Business Intelligence Freelance

Informations forums :
Inscription : mars 2005
Messages : 812
Points : 1 084
Points : 1 084
Par défaut performances : select, procédure stockée ou vue ?

Bonjour,
Je suis actuellement en phase de dev sur un projet utilisant postgresql et je n'ai pas beaucoup d'expérience sur ce sgbd.

Pour un requête toute simple genre :
Code :
1
2
3
4
SELECT m.champ1,m.champ1,m.champ1,rg.champ1,rg.champ1,	py.champ1 	FROM atf.table1 m
	INNER JOIN atf.tabledim2 py ON m.SKtable1=py.SKtable2
	INNER JOIN atf.tabledim3 rg ON m.SKtable1=rg.SKtable3
	WHERE m.SKtable1=maValeur;
Vous l'aurez compris maValeur est le paramètre de la requête. La requête ne retourne qu'une seule ligne (tabledim2 0,1-1,n table1 1,n - 0,1 tabledim3)

Pour une requête aussi simple, vaut-il mieux la faire dans l'application(php), la mettre dans une procédure stockée, ou faire une vue ? Ou est-ce qu'il n'y a pas de différence ?

Est-ce que ce sera la même réponse pour cette requête qui peut retourner plusieurs enregistrements ?

Code :
1
2
3
4
SELECT m.champ1,m.champ1,m.champ1,rg.champ1,rg.champ1,	py.champ1 	FROM atf.table1 m
	INNER JOIN atf.tabledim2 py ON m.SKtable1=py.SKtable2
	INNER JOIN atf.tabledim3 rg ON m.SKtable1=rg.SKtable3
	WHERE py.champ1='maValeur';
Merci par avance.
__________________
Pensez à la fonction Recherche
Benoit_Durand est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2011, 10h42   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 990
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 990
Points : 18 241
Points : 18 241
Envoyer un message via MSN à CinePhil
Combien de dizaines de millions de lignes ont tes tables pour que tu t'inquiètes à ce point des performances ?

Plus généralement, ce n'est pas en ces termes qu'il faut réfléchir. Une vue est une requête enregistrée alors le temps d'exécution entre une vue et sa requête directement lancée sera quasi identique. Les vues servent à mieux gérer l'accès aux données et à simplifier l'écriture du code SQL dans les applications clientes en éliminant un paquet de jointures et de requêtes complexes que ne saurait pas forcément faire un développeur de la meilleure façon qui soit.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2011, 11h32   #3
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
Quant aux procédures stockées, je dirais qu'elles ne présentent aucun intérêt puisque tu as une seule requête. Elles pourront être envisagées à partir d'au moins 2 requêtes pour réduire les allers-retours client/serveur
__________________
Je ne réponds pas aux questions envoyées par mp
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2011, 14h02   #4
Membre Expert
 
Avatar de Benoit_Durand
 
Benoit Durand
Consultant en Business Intelligence Freelance
Inscription : mars 2005
Messages : 812
Détails du profil
Informations personnelles :
Nom : Benoit Durand
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Consultant en Business Intelligence Freelance

Informations forums :
Inscription : mars 2005
Messages : 812
Points : 1 084
Points : 1 084
OK merci.
La volumétrie n'est pas énorme : 500k lignes pour atf.table1.
C'est plutôt la fréquence des requêtes sur la table qui m'inquiète.
J'arrive du décisionnel et là je dois faire du e-commerce, le truc qui n'a rien à voir.
__________________
Pensez à la fonction Recherche
Benoit_Durand 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 08h50.


 
 
 
 
Partenaires

Hébergement Web