Re: Frage zu SQL

From: Peter Eisentraut <peter_e(at)gmx(dot)net>
To: Andreas Kretschmer <akretschmer(at)despammed(dot)com>
Cc: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: Frage zu SQL
Date: 2005-07-04 14:27:10
Message-ID: 200507041627.11072.peter_e@gmx.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-de-allgemein

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

--
Peter Eisentraut
http://developer.postgresql.org/~petere/

In response to

  • Frage zu SQL at 2005-07-04 14:12:23 from Andreas Kretschmer

Responses

Browse pgsql-de-allgemein by date

  From Date Subject
Next Message Andreas Kretschmer 2005-07-04 14:52:45 Re: [despammed] Re: Frage zu SQL
Previous Message Andreas Kretschmer 2005-07-04 14:12:23 Frage zu SQL