Re: two queries and dual cpu (perplexed) - Mailing list pgsql-performance

From Tom Lane
Subject Re: two queries and dual cpu (perplexed)
Date
Msg-id 24112.1114301405@sss.pgh.pa.us
Whole thread Raw
In response to Re: two queries and dual cpu (perplexed)  (John A Meinel <john@arbash-meinel.com>)
Responses Re: two queries and dual cpu (perplexed)  ("Shoaib Burq (VPAC)" <sab@vpac.org>)
List pgsql-performance
John A Meinel <john@arbash-meinel.com> writes:
> Actually, you probably don't want enable_seqscan=off, you should try:
> SET enable_nestloop TO off.
> The problem is that it is estimating there will only be 44 rows, but in
> reality there are 13M rows. It almost definitely should be doing a
> seqscan with a sort and merge join.

Not nestloops anyway.

> I don't understand how postgres could get the number of rows that wrong.

No stats, or out-of-date stats is the most likely bet.

> I can't figure out exactly what is where from the formatting, but the query that seems misestimated is:
> ->  Index Scan using "IX_ClimateId" on "ClimateChangeModel40"  (cost=0.00..1063711.75 rows=265528 width=20) (actual
time=28.311..17212.703rows=13276368 loops=1) 
>     Index Cond: ("outer"."ClimateId" = "ClimateChangeModel40"."ClimateId")

Yeah, that's what jumped out at me too.  It's not the full explanation
for the join number being so far off, but this one at least you have a
chance to fix by updating the stats on ClimateChangeModel40.

            regards, tom lane

pgsql-performance by date:

Previous
From: Josh Berkus
Date:
Subject: Re: Bad n_distinct estimation; hacks suggested?
Next
From: "Andrew Dunstan"
Date:
Subject: Re: [HACKERS] Bad n_distinct estimation; hacks suggested?