Richard-
My best guess is that it's applying your fa.attribut = "FARZ" and dr.attribut = "PROM" filters after the rows are brought to the querying server. Try this instead. I think it should prevent the excess traffic:
SELECT
s.persnr,
s.vollname,
vt.v_end AS ver_ende,
fa.von AS farzt_datum,
dr.von AS doktr_datum
FROM (select * from stamm where stamm.persnr>0) s
LEFT JOIN vertrag vt ON (vt.persnr = s.persnr AND vt.v_end =
(SELECT max(v_end) FROM vertrag x WHERE x.persnr = s.persnr) )
LEFT JOIN
(
SELECT von, persnr FROM verteiler@opserver_tcp:pers_zusatz fa
WHERE attribute = "FARZ"
) fa
ON (fa.persnr = s.persnr)
LEFT JOIN
(
SELECT von, persnr FROM verteiler@opserver_tcp:pers_zusatz
WHERE attribute = "PROM"
) dr
ON (dr.persnr= s.persnr)
ORDER BY s.persnr DESC
--EEM
If you need fa and dr to be indexed, load them into temp tables, index them and join the temp tables instead.
--EEM