Re: Multiple-Table-Spanning Joins with ORs in WHERE Clause - Mailing list pgsql-performance

From Sven R. Kunze
Subject Re: Multiple-Table-Spanning Joins with ORs in WHERE Clause
Date
Msg-id 8ccdd027-f4a0-2e0d-1e26-2a403fed8d17@mail.de
Whole thread Raw
In response to Multiple-Table-Spanning Joins with ORs in WHERE Clause  ("Sven R. Kunze" <srkunze@mail.de>)
Responses Re: Multiple-Table-Spanning Joins with ORs in WHERE Clause  (Pavel Stehule <pavel.stehule@gmail.com>)
List pgsql-performance
On 23.09.2016 11:00, Pavel Stehule wrote:
2016-09-23 8:35 GMT+02:00 Sven R. Kunze <srkunze@mail.de>:
I was wondering: would it be possible for PostgreSQL to rewrite the query to generate the UNION (or subquery plan if it's also fast) on it's own?

It depends on real data. On your specific data the UNION variant is pretty fast, on different set, the UNION can be pretty slow. It is related to difficult OR predicate estimation.

I figure that the UNION is fast if the sub-results are small (which they are in our case). On the contrary, when they are huge, the OUTER JOIN variant might be preferable.


Is there something I can do to help here?

Or do you think it's naturally application-dependent and thus should be solved with application logic just as we did?


Cheers,
Sven

pgsql-performance by date:

Previous
From: "Alex Ignatov \(postgrespro\)"
Date:
Subject: Re: Millions of tables
Next
From: Cea Stapleton
Date:
Subject: Failing Multi-Job Restores, Missing Indexes on Restore