> If you can show us the anonymized query plan, why not the anonymized query? > It doesn't look like it could be all that complicated. It's not: SELECT COUNT(*) FROM "user" INNER JOIN "house" ON ("user"."house_id" = "house"."id") LEFT OUTER JOIN "district" ON ("house"."district_id" = "district"."id") WHERE ("user"."status" = 0 AND ("district"."update_status" = 2 OR "district"."update_status" = 3 ) AND ("user"."valid" = 1 OR "user"."valid" = 3 ) AND "district"."is_test" = false ); However, since the anonymization above doesn't quite match that used in the EXPLAIN plan, I'm not sure what you'll get out of it. And yes, we know that the outer join is being invalidated. -- Josh Berkus PostgreSQL Experts Inc. http://pgexperts.com -- Sent via pgsql-performance mailing list (pgsql-performance@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-performance