Andreas,
pg relys on the OS readahead (== larger block IO) to do efficient IO. Basically the pg scan performance should match a dd if=file of=/dev/null bs=8k, unless CPU bound.
FWIW, we could improve performance by creating larger write blocks when appropriate, particularly on Unixes like Solaris. But that's a bad effort/result tradeoff for most OSes, so it's not the route I'd be suggesting for general scans.
However, the external sort code could possibly be improved by more appropriate block sizing, which I think someone has already suggested.
--Josh ---------------------------(end of broadcast)--------------------------- TIP 6: explain analyze is your friend