PostgreSQL (per impostazione predefinita) restituisce tutte le righe in una volta sola. Questo ha il vantaggio di liberare risorse lato server a costo di set di risultati possibilmente grandi sul client.
L'alternativa è utilizzare un cursore che può restituire una singola riga alla volta. Alcuni driver lo supportano direttamente (forse DOP ?) oppure puoi utilizzare DECLARE e RECUPERA
L'altra cosa da tenere a mente è COPY di PostgreSQL comando che può eseguire il dump di una tabella o una query direttamente su un file (supponendo che non sia necessaria molta elaborazione/formattazione). Verifica se la tua libreria di database offre l'accesso diretto.