RE: Weird seqscan node plan

Igor Neyman <[email protected]>
Newsgroups gmane.comp.db.postgresql.general
Message-ID <BN6PR1701MB1890CCEA39CD56F1103FD772DA450@BN6PR1701MB1890.namprd17.prod.outlook.com>
From: Игорь Выскорко [mailto:[email protected]]
Sent: Tuesday, November 26, 2019 4:13 AM
To: Andrei Zhidenkov <[email protected]>
Cc: [email protected]
Subject: Re: Weird seqscan node plan

26.11.2019, 16:02, "Andrei Zhidenkov" <[email protected]<mailto:[email protected]>>:
How many tables do you have in your query? If too many, in your case “Genetic Query Optiomiation” might be used (https://www.postgresql.org/docs/10/geqo-pg-intro.html).

On 26. Nov 2019, at 03:19, Игорь Выскорко <[email protected]<mailto:[email protected]>> wrote:

Hi all!
I'm confused by planner choice: seqscan but not index scan when index scan cost is much cheaper.
1st plan: https://explain.depesz.com/s/Cti#l8
2nd plan (with "set enable_seqscan = off"): https://explain.depesz.com/s/qn0I#l8

Look at 8th row: this nested loop decided to join the second node by using seqscan (1st plan) when index is available (2nd plan). Index scan is much cheaper (0.430 over 257.760).

What am I missing?

And thanks for any reply!


Hm... about 12 tables.
I tried to disable geqo (set geqo = off;)  plan didn't change. But thanks for your try )

Version I'm using (if matter):
select version();
PostgreSQL 9.6.1 on x86_64-pc-linux-gnu, compiled by gcc (Debian 4.9.2-10) 4.9.2, 64-bit

Try increasing the following parameters to 14 (or even 16, if you are not sure about number of tables involved):

geqo_threshold = 14
from_collapse_limit = 14
join_collapse_limit = 14

“about 12” is too close to default limit, 12.

Regards,
Igor Neyman
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.