Re: performance with query

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 16 Jun 2009, Alberto Dalmaso wrote:
What does your postgresql.conf file look like?

enable_hashjoin = off
enable_nestloop = off
enable_seqscan = off
enable_sort = off

Why are these switched off?

and that is the explain of the too slow simple query

"Merge Join  (cost=0.00..1032305.52 rows=4 width=12)"
"  Merge Cond: (domande.id_dichiarazione = c_elaout.id_domanda)"
"  ->  Index Scan using "IDX_8_domande" on domande  (cost=0.00..8.39
rows=1 width=4)"
"        Index Cond: (id_domanda = 4165757)"
"  ->  Index Scan using "IDX_2_c_elaout" on c_elaout
(cost=0.00..1030283.89 rows=805279 width=12)"
"        Filter: ((c_elaout.node)::text = 'Invalido'::text)"

this cost  15 sec


with mergejoin to off:

"Nested Loop  (cost=100000000.00..100000022.97 rows=4 width=12)"
"  ->  Index Scan using "IDX_8_domande" on domande  (cost=0.00..8.39
rows=1 width=4)"
"        Index Cond: (id_domanda = 4165757)"
"  ->  Index Scan using "IDX_2_c_elaout" on c_elaout  (cost=0.00..14.54
rows=4 width=12)"
"        Index Cond: (c_elaout.id_domanda = domande.id_dichiarazione)"
"        Filter: ((c_elaout.node)::text = 'Invalido'::text)"

this cost 15 msec!!!

Well duh. What you're effectively doing is telling Postgres to NEVER use a nested loop. Then you're getting upset because it isn't using a nested loop. When you tell it to NEVER use anything (switching all join algorithms off), it ignores you and chooses the right plan anyway.

Matthew

--
You can configure Windows, but don't ask me how.       -- Bill Gates

--
Sent via pgsql-performance mailing list (pgsql-performance@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-performance

[Postgresql General]     [Postgresql PHP]     [PHP Users]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Yosemite]

  Powered by Linux