From: Игорь Выскорко [mailto:vyskorko.igor@xxxxxxxxx]
Sent: Tuesday, November 26, 2019 4:13 AM
To: Andrei Zhidenkov <andrei.zhidenkov@xxxxxxx>
Cc: pgsql-general@xxxxxxxxxxxxxxxxxxxx
Subject: Re: Weird seqscan node plan
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).
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
|