Re: prepared statements und partitionierte tabellen ...
"Albe Laurenz" <[email protected]>
| Newsgroups | gmane.comp.db.postgresql.german |
|---|---|
| Message-ID | <D960CB61B694CF459DCFB4B0128514C208126ED7@exadv11.host.magwien.gv.at> |
Andreas Kretschmer schrieb: > hab a bissl a Problem: > > partitionierte Tabelle mit einer Spalte, nennen wir sie DATUM. Nach der > tagesweise partitioniert. Pro Tag so 2-3 Mio Datesätze. Ist ein > timestamp without timezone. > > > Abfragen der Art: select * from foo where datum between ts1 and ts2; > > gehen super flott. (ts1 und t2 sind zu 99% immer am selben Tag, nur > Sekunden auseinander) > > > Aber: Kunde hat da einen $Mapper, der bastelt prepared Statements, und > ballert diese ab. Performance grottig, da Planner da beim Planen keinen > Plan (toll, ne?) von den Parametern hat. verständlich. > > Kunde sagt, er hat keinen Einfluß, ist immer prepared. > > Also hab ich eine stored proc geschrieben, die er aufruft. Innerhalb > mache ich ein EXECUTE 'select ...', somit wollte ich erzwingen, daß der > Plan bei Ausführung erstellt wird. Ausführungszeit gleichbleibend > grottig, obwohl er doch einklich den Plan beim EXECUTE sich basteln > müßte, mit aktuellen Parametern? > > Wo ist mein Hirnknoten? Kann ich nicht sagen, aber ich würde mir einmal die Pläne anschauen. Verwende auto_explain mit auto_explain.log_nested_statements = on und auto_explain.log_min_duration = 0 Dann wirst Du die Ausführungspläne im Log sehen. Vielleicht kann man dann mehr sagen. Du verwendest eh nicht EXECUTE ... USING, oder? Liebe Grüße, Laurenz Albe -- Sent via pgsql-de-allgemein mailing list ([email protected]) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-de-allgemein