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 23/02/2012 20:25:40

charleydc5
Membre

Comment établir une priorité pour une requête longue à exécuter?

Bonjour à tous,

J'aimerais savoir s'il existe un moyen de mettre une priorité à basse pour une requête qui prend beaucoup de ressources.

Le problème que j'ai est que lorsqu'un de mes collègues exécute une requête sur notre serveur de développement, le CPU tombe à 100% et l'ensemble de notre équipe est incapable d'utiliser le serveur pendant ce temps.

Comment pourrait-on faire en sorte que la requête n'utilise pas toutes les ressources?

Merci


Charles Morin
PostgreSQL 9.0.3 sur Windows 2008 Server Standard (x64)

Hors ligne

#2 23/02/2012 23:51:42

gleu
Administrateur

Re : Comment établir une priorité pour une requête longue à exécuter?

J'aimerais savoir s'il existe un moyen de mettre une priorité à basse pour une requête qui prend beaucoup de ressources.

À partir de PostgreSQL même, non. À partir du système d'exploitation, ça dépend du système. Il est toujours possible d'utiliser la commande nice sous Linux par exemple.

Le problème que j'ai est que lorsqu'un de mes collègues exécute une requête sur notre serveur de développement, le CPU tombe à 100% et l'ensemble de notre équipe est incapable d'utiliser le serveur pendant ce temps.

Vous n'avez qu'un seul processeur sur cette machine ? parce qu'une requête ne peut monopoliser qu'un processeur, ce qui fait que les autres requêtes passent par les autres processeurs...

Comment pourrait-on faire en sorte que la requête n'utilise pas toutes les ressources?

Mais on veut qu'elle utilise toutes les ressources à sa disposition, en sachant que de toute façon elle n'utilise qu'un processeur et que les autres requêtes passent par les autres processeurs.


Guillaume.

Hors ligne

#3 24/02/2012 14:44:07

charleydc5
Membre

Re : Comment établir une priorité pour une requête longue à exécuter?

En fait, on roule sur Windows 2008 x64 (machine virtuelle dans VMWare). Un seul processeur est attribué à cette machine virtuelle. Je vais donc demander d'allouer plus de processeur (au moins deux) pour nos serveurs PostgreSQL.

En inspectant le serveur pour trouver quelle requête était problématique, j'ai travaillé avec la commande EXPLAIN dans pgAgmin.

Est-ce que vous connaissez un guide qui expliquerait comment traiter les informations qui nous sont fournies par la commande EXPLAIN?

Merci pour votre aide


Charles Morin
PostgreSQL 9.0.3 sur Windows 2008 Server Standard (x64)

Hors ligne

#4 24/02/2012 14:54:10

rjuju
Administrateur

Re : Comment établir une priorité pour une requête longue à exécuter?

Vous pouvez déjà commencer par cet article de la doc : http://docs.postgresql.fr/9.0/performance-tips.html

Hors ligne

#5 24/02/2012 15:08:22

Marc Cousin
Membre

Re : Comment établir une priorité pour une requête longue à exécuter?

Il y a aussi les slides de la conf de Robert Haas au PGCon 2010.

http://www.slideshare.net/pgconf/the-po … ry-planner
Si vous êtes à l'aise en anglais, il y a aussi le son : https://www.pgcon.org/2010/audio/15%20T … lanner.mp3


Marc.

Hors ligne

Pied de page des forums