On Thu, Aug 31, 2006 at 01:56:29PM +0200, Peter Eisentraut wrote: > With time, it becomes ever clearer to me that prepared SQL > statements are just a really bad idea. On some days, it seems like > half the performance problems in PostgreSQL-using systems are > because a bad plan was cached somewhere. I'd say, in the majority > of cases the time you save parsing and planning is irrelevant > compared to the possibly disastrous effects of wrong or suboptimal > plans. I wonder if other people have similar experiences. > ... > Comments?
Hello. I'm attempting to understand why prepared statements would be used for long enough for tables to change to a point that a given plan will change from 'optimal' to 'disastrous'. Wouldn't this require that the tables are completely re-written, or that their data is drastically updated? For my own tables, most of the data remains static for months on end. Data is accumulated. Small changes are made. I don't see why a prepared statement used over a 24 hour period would ever become disastrous. This suggests to me that you are doing either: 1) Maintaining prepared statements for weeks or months at a time. 2) Churning your tables up into a froth. I'm guessing, as you mentioned JDBC, that you might be hitting 1), in the context of JDBC being used from a Web Application, where the application server holds a connection open for weeks or months at a time. If so, it does sound as if JDBC is doing wrong by keeping prepared queries around for that long. A time limit of an hour, or even a few minutes would make sense. My experience does not match yours. Prepared queries have always significantly improved my execution times. They do have a place. Whatever the scenarios you are hitting should be dealt with, possibly in JDBC. Cheers, mark -- [EMAIL PROTECTED] / [EMAIL PROTECTED] / [EMAIL PROTECTED] __________________________ . . _ ._ . . .__ . . ._. .__ . . . .__ | Neighbourhood Coder |\/| |_| |_| |/ |_ |\/| | |_ | |/ |_ | | | | | | \ | \ |__ . | | .|. |__ |__ | \ |__ | Ottawa, Ontario, Canada One ring to rule them all, one ring to find them, one ring to bring them all and in the darkness bind them... http://mark.mielke.cc/ ---------------------------(end of broadcast)--------------------------- TIP 6: explain analyze is your friend