Re: problème de mémoire avec psql

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)

In response to

Browse pgsql-fr-generale by date

  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