Re: [despammed] Re: Frage zu SQL

From: Andreas Kretschmer <akretschmer(at)despammed(dot)com>
To: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: [despammed] Re: Frage zu SQL
Date: 2005-07-04 14:52:45
Message-ID: 20050704145245.GB31345@webserv.wug-glas.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-de-allgemein

am 04.07.2005, um 16:27:10 +0200 mailte Peter Eisentraut folgendes:
> Andreas Kretschmer wrote:
> > select a.kunde, case when a.typ = 'K' then a.wert when a.typ = 'D'
> > then NULL END as kredit, case when a.typ = 'K' then NULL when a.typ =
> > 'D' then a.wert END as debit, a.ts,
> > sum(get_saldo(a.typ, a.wert))
> > from konten a, konten b
> > where b.ts <= a.ts
> > group by a.kunde, kredit, debit, a.ts
> > order by a.ts;
>
> > Klappt. Aber, bei einigen tausen Datensätzen, dauert es *EWIG*.
> > (12000 Sätze, Abbruch nach ca. 1 Stunde warten...)
>
> Ich verstehe die Bedeutung dieser Join-Bedingung b.ts <= a.ts nicht. Das
> ergibt, und jetzt lehn ich mich mathematisch mal aus dem Fenster, glaub
> ich N*(N+1)/2 Datensätze, also hier rund 72 Millionen, was bei deiner

ja, kann hinkommen, der explain sagte auch was in dieser Größenordnung.

Also, ich wollte ja die summen bis dahin erfassen, also grob so:

id | wert | summe
---------------------
1 | 5 | 5 (0+5)
2 | 10 | 15 (5+10)
3 | -2 | 13 (15-2)

> Tabellenstruktur mindestens 5 GB Speicher entspricht, die dann schön
> sortiert und gruppiert werden müssen. Das würde ich also nochmal
> überdenken.

mache ich. Mmmh, ich werd dann mal
www.varlena.com/varlena/GeneralBits/archive.php absuchen...

Andreas
--
Andreas Kretschmer (Kontakt: siehe Header)
Heynitz: 035242/47212, D1: 0160/7141639
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
=== Schollglas Unternehmensgruppe ===

In response to

Responses

Browse pgsql-de-allgemein by date

  From Date Subject
Next Message Peter Eisentraut 2005-07-04 17:39:43 Re: [despammed] Re: Frage zu SQL
Previous Message Peter Eisentraut 2005-07-04 14:27:10 Re: Frage zu SQL