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 10/06/2010 10:30:09

rbidocho
Membre

execution d'un fichier sql sous pgadmin

Bonjour,

Voilà j'ai créer un fichier sql qui contient un peu plus de 600 000 lignes de commandes update qui vont agir sur une table.

J'avais déjà remarqué que faire plus de 10 000 requêtes à la suite sous pgadmin menait à des erreurs.

est il possible de faire un EXECUTE fichier.sql sous pgadmin même si ce fichier contient plus de 600 000 lignes (et est ce la bonne commande ?) ?

Merci

RB

Hors ligne

#2 10/06/2010 10:41:43

flo
Membre

Re : execution d'un fichier sql sous pgadmin

Je ne pense pas qu'il soit judicieux de faire cela sous pgadmin: exécuter un script de 600 000 lignes, ce n'est pas franchement interactif. Il vaut mieux utiliser psql pour cela.

Je m'interroge tout de même sur les 600 000 mises à jour : cela fait tout de même beaucoup si c'est dans la même transaction...

Quelqu'un a un avis éclairé sur la capacité de Postgres à gérer une telle transaction?

Hors ligne

#3 10/06/2010 15:57:30

gleu
Administrateur

Re : execution d'un fichier sql sous pgadmin

Quelqu'un a un avis éclairé sur la capacité de Postgres à gérer une telle transaction?

Oui, aucun soucis. Que ce soit avec psql ou pgAdmin d'ailleurs. J'aimerais bien savoir ce que sont ces erreurs. Rien ne dit qu'on n'aurait pas les mêmes sur psql (requêtes erronées, problèmes dûs au contrainte, etc.)


Guillaume.

Hors ligne

#4 21/07/2010 08:33:55

rbidocho
Membre

Re : execution d'un fichier sql sous pgadmin

Bonjour,

Après quelques jours les pieds dans l'eau je reviens avec ma question du départ, qui est comment mettre à jour toutes les valeurs de 5 colonnes d'une table contenant un peu plus de 600 000 lignes ?
Comme écrit précédemment j'ai créé le script sql contenant les 600 000 update mais vous avez l'air de dire que cela n'est pas la meilleur chose à faire !! (et je ne m'en offusque pas :-))

Pour en revenir aussi à l'interrogation de Guillaume sur les erreurs que j'avais déjà remarqué, je l'avais écrit dans le message intitulé "Mise à jour d'une "grosse" table" qui date du 8/07/2009.
Voici ce que j'écrivais :

RB a écrit :

rebonjour,

l'erreur viendrait de pgadmin qui ne supporte pas de réaliser quelques 36600 requêtes !!!

j'ai juste effectué ces requêtes en 3 fois.

merci encore de vos aides

RB

Merci

RB

Hors ligne

#5 21/07/2010 13:50:04

gleu
Administrateur

Re : execution d'un fichier sql sous pgadmin

pgAdmin accepte d'exécuter autant de requêtes que vous voulez, tout dépend de la requête. Et ça ne réponds pas à ma question: quel est le message d'erreur de PostgreSQL lorsque vous essayez d'exécuter votre script ? Si c'est celui indiqué dans le précédent thread (à savoir, ERROR:  out of memory, DETAIL:  Failed on request of size 1048576), c'est une erreur de PostgreSQL, pas de pgAdmin.


Guillaume.

Hors ligne

#6 21/07/2010 13:51:20

gleu
Administrateur

Re : execution d'un fichier sql sous pgadmin

J'oubliais, concernant la mise à jour de 600000 lignes, c'est possible à faire. Ça veut aussi dire que vous aurez 600000 versions de ligne mortes et 600000 versions de ligne vivantes. Autant dire que votre table va grossir.


Guillaume.

Hors ligne

#7 21/07/2010 14:47:04

rbidocho
Membre

Re : execution d'un fichier sql sous pgadmin

Ok je vais essayer l'éxécution de mon script de mise à jour de mes 600 000 lignes.

Est ce que un vacuum nettoiera la table et la mettre au régime ??

RB

Hors ligne

#8 21/07/2010 15:07:28

gleu
Administrateur

Re : execution d'un fichier sql sous pgadmin

Un VACUUM va simplement dire à PostgreSQL où des espaces libres sont disponibles. Ça ne devrait pas la faire maigrir outre mesure.


Guillaume.

Hors ligne

Pied de page des forums