From: Игорь Выскорко [mailto:vyskorko.i...@yandex.ru] Sent: Tuesday, November 26, 2019 4:13 AM To: Andrei Zhidenkov <andrei.zhiden...@n26.com> Cc: pgsql-general@lists.postgresql.org Subject: Re: Weird seqscan node plan
26.11.2019, 16:02, "Andrei Zhidenkov" <andrei.zhiden...@n26.com<mailto:andrei.zhiden...@n26.com>>: 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, Игорь Выскорко <vyskorko.i...@yandex.ru<mailto:vyskorko.i...@yandex.ru>> 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