From: | Peter Eisentraut <peter_e(at)gmx(dot)net> |
---|---|
To: | "Matthias Zirngibl" <Matthias(dot)Zirngibl(at)rent-a-webdesigner(dot)com> |
Cc: | pgsql-de-allgemein(at)postgresql(dot)org |
Subject: | Re: Frage zur Volatilität von Funktionen |
Date: | 2005-10-08 21:54:01 |
Message-ID: | 200510082354.02430.peter_e@gmx.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-de-allgemein |
Matthias Zirngibl wrote:
> Ich hätte eine Frage zur Volatilität
> (http://www.postgresql.org/docs/8.0/interactive/xfunc-volatility.html
>) von Funktionen.
> Auf welche Art speichert PG die Ergebnisse von gleichen Aufrufen?
Irgendwo im Speicher.
> Wäre es denkbar, eine Funktion, die als Immutable deklariert ist, aus
> Performance-Gründen zu nutzen, aber dennoch bei einer Änderunge der
> Datenquelle (über eine Funktion) einen "Refresh" des Aufrufes zu
> erzwingen? Also Beispielsweise einen Wert aus einer Tabelle lesen,
> der sich wirklich selten ändert...
Der einzige wahrnehmbare Unterschied zwischen einer immutable und einer
stable Funktion ist ja, dass erstere beim Planen ausgewertet wird und
zweitere einmalig beim Ausführen der Anfrage. Wenn du also mogelst und
sich die Basiswerte der immutable Funktion ändern, dann kannst du
einfach den Plan neu vorbereiten lassen (also PREPARE neu ausführen).
--
Peter Eisentraut
http://developer.postgresql.org/~petere/
From | Date | Subject | |
---|---|---|---|
Next Message | Thomas Hoth | 2005-10-11 18:32:07 | Join bei Update |
Previous Message | Matthias Zirngibl | 2005-10-08 21:20:01 | Frage zur Volatilität von Funktionen |