"Kevin Grittner" <Kevin.Grittner@xxxxxxxxxxxx> writes: > It struck me that it would be outstanding if the planner could > recognize this sort of situation, and build a temporary index based on > the snapshot of the data visible to the transaction. I don't think that's an appropriate solution at all. What it looks like to me (assuming that explain's estimated row counts are reasonably on-target) is that the time is all going into the EXISTS subplans. The real problem here is that we aren't doing anything to convert correlated EXISTS subqueries into some form of join that's smarter than a raw nestloop. regards, tom lane