Hi all, I have a execution planner related issue that I'd like to have some help in understanding a bit deeper - I have a table which basically contains fields for a value, a timestamp and a record type which is an integer. I would like to do a query which retrieves the newest record for each type, and the persistence framework that I'm using does something which is structurally like SELECT * FROM table t1 WHERE 0 = (SELECT COUNT(*) FROM table t2 WHERE t2.type = t1.type AND t2.timestamp > t1.timestamp) On all of the PostgreSQL versions I've tried (9.0.2 included) this executes in about 20-30 seconds, which isn't exactly stellar. I've tried the (I think) equivalent SELECT * FROM table t1 WHERE NOT EXISTS (SELECT * FROM table t2 WHERE t2.type = t1.type AND t2.timestamp > t1.timestamp) instead, and that executes in about 100 ms, so it's about 200 times faster. The two statements have completely different execution plans, so I understand why there is a difference in performance, but as I'm unable to modify the SQL that the persistence framework generates I'd like to know if there's anything that I can do in order to make the first query execute as fast as the second one. I'm more specifically thinking whether I'm missing out on a crucial planner configuration knob or something like that, which causes the planner to treat the two cases differently. Best regards & thanks for an excellent database engine, Mikkel Lauritsen -- Sent via pgsql-performance mailing list (pgsql-performance@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-performance