From: | "Daniel Verite" <daniel(at)manitou-mail(dot)org> |
---|---|
To: | " François Bouhet" <francois(dot)bouhet(at)eurofidai(dot)org> |
Cc: | "pgsql-fr-generale" <pgsql-fr-generale(at)postgresql(dot)org> |
Subject: | Re: problème de mémoire avec psql |
Date: | 2015-01-27 15:59:06 |
Message-ID: | 31fcd86a-00a2-423b-a895-3aefed7fba7a@mm |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-fr-generale |
François Bouhet wrote:
> Avec psql, la redirection de la sortie standard ou l'option de fichier
> de sortie ne fonctionnent pas :
>
> echo "SELECT * FROM temp_jrc_order_201206 ; " | psql -h noirdesir -A -U
> postgres -F \; -d mabase > order_201206.csv
>
> echo "SELECT * FROM temp_jrc_order_201206 ; " | psql -h noirdesir -A -U
> postgres -F \; -d mabase -o order_201206.csv
Il y a au moins 3 solutions, de la plus utilisée à la moins utilisée:
1) utiliser \copy au format CSV. C'est spécialement prévu pour ce genre
d'usage
2) utiliser la variable interne FETCH_COUNT de psql avec un nombre de lignes
raisonnable. Voilà ce que dit la doc:
http://docs.postgresqlfr.org/9.4/app-psql.html
FETCH_COUNT
Si cette variable est un entier positif, les résultats de la requête
SELECT sont récupérés et affichés en groupe de ce nombre de lignes, plutôt
que par le comportement par défaut (récupération de l'ensemble complet des
résultats avant l'affichage). Du coup, seule une petite quantité de mémoire
est utilisée, quelle que soit la taille de l'ensemble des résultats
3) pendant qu'on y est, dans les cas plus compliqués on peut utiliser un
curseur au niveau SQL avec DECLARE puis FETCH successifs, et CLOSE. Avec
cette technique on peut même combiner les résulats de plusieurs requêtes dans
le même flux et la mémoire allouée par psql n'est toujours celle que d'un
seul FETCH.
Cordialement,
--
Daniel
--
Envoi via la liste pgsql-fr-generale (pgsql-fr-generale(at)postgresql(dot)org)
From | Date | Subject | |
---|---|---|---|
Next Message | Dimitri Fontaine | 2015-03-03 08:36:48 | Conférence pgDay Paris, le 21 avril prochain |
Previous Message | Dimitri Fontaine | 2015-01-27 15:58:21 | Re: problème de mémoire avec psql |