On Tue, Jun 20, 2023 at 10:14 PM David Rowley <dgrowleyml@xxxxxxxxx> wrote:
On Wed, 21 Jun 2023 at 07:42, Marc Millas <marc.millas@xxxxxxxxxx> wrote:
> But if I do the same with clause one OR clause 2, I have to kill the request after an hour, seeing the filesystem showing more than 140 Mb of increased usage.
> So, before providing the 3 explain plans (I must anonymize everything, so somewhat boring) I would like to know if there is some obvious thing I am missing.
> all tables have been vacuum analyzed.
I believe you can anonymise the explain with https://explain.depesz.com/
link to the anonymized plan of the req with one clause : https://explain.depesz.com/s/TWp4
It's pretty hard to say until we see the query, but having an OR in
the join condition makes it impossible to Hash or Merge join, so
perhaps it's slow due to Nested Loop join.
You could consider rewriting the query to use a UNION or a UNION ALL
separating out each branch of the OR into a UNION of its own. That
would allow Hash and Merge join to work again. However, that's all
speculation until you provide more details.
https://wiki.postgresql.org/wiki/Guide_to_reporting_problems
David