PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 06/04/2010 12:24:54

slash
Membre

Performance VUE/Procédure stockée

Bonjour à tous,

Quelqu'un pourrait il m'éclairer sur ce sujet s'il vous plait? =>
J'ai une base de données embarquée sur un système Windows XP Embedded, sur laquelle je fais régulièrement des requêtes de jointures de jointure (un peu moins de 10 tables).
Ce processus est actuellement effectué par une procédure stockée, via laquelle je peux passer des arguments, de telle sorte a filtrer mon résultat.

Ma question :
Si, au lieu de faire la jointure des tables dans la procédure stockée, je l'effectue via une vue sur laquelle j'appliquerai mes filtres, est-ce que les performances (temps de reponse/charge CPU) seront plus faibles que par la méthode de la procédure stockée? Ou est-ce que j'aurai l'effet inverse?

D'avance merci,
Cordialement,

Mat

Hors ligne

#2 06/04/2010 12:46:11

gleu
Administrateur

Re : Performance VUE/Procédure stockée

Généralement, la vue sera plus performante car PostgreSQL pourra optimiser la requête complète (ie en intégrant la requête comprise dans la vue). Dans le cas de la procédure stockée, il n'y a pas d'optimisation possible.


Guillaume.

Hors ligne

#3 06/04/2010 12:53:21

Marc Cousin
Membre

Re : Performance VUE/Procédure stockée

Comme l'explique Guillaume, c'est la plupart du temps vrai. Sauf si la vue est écrite d'une façon qui empêche le moteur de 'pousser' les clauses WHERE à l'intérieur de la vue. Il y a quelques cas où la procédure stockée sera plus performante (mais il s'agit de cas très tordues avec des requêtes particulièrement alambiquées).


Marc.

Hors ligne

#4 06/04/2010 13:38:14

slash
Membre

Re : Performance VUE/Procédure stockée

Ok, merci beaucoup pour ces informations!

Hors ligne

#5 08/04/2010 14:34:13

slash
Membre

Re : Performance VUE/Procédure stockée

Bonjour,

je me rends compte que j'ai omis de parler de quelque chose :
La procédure stockée que j'utilise génère un curseur que j'utilise ensuite pour récupérer les données.

- Avec cette méthode, la procédure stockée a-t-elle des chances d'etre plus performante que la vue?
- Peut on faire des curseur sur des vues?

Hors ligne

#6 08/04/2010 19:08:37

gleu
Administrateur

Re : Performance VUE/Procédure stockée

- Avec cette méthode, la procédure stockée a-t-elle des chances d'etre plus performante que la vue?

Avec ou sans curseur, une procédure stockée peut être plus rapide qu'une vue.

- Peut on faire des curseur sur des vues?

Oui, à condition qu'avant l'exécution de la vue, vous soyez dans une transaction.


Guillaume.

Hors ligne

#7 09/04/2010 08:55:28

slash
Membre

Re : Performance VUE/Procédure stockée

Merci beaucoup!

Hors ligne

Pied de page des forums