Re: [GENERAL] explain analyze output: 0 rows, 1M loops - Mailing list pgsql-general

From David G. Johnston
Subject Re: [GENERAL] explain analyze output: 0 rows, 1M loops
Date
Msg-id CAKFQuwb_u4pNXpyWdhv-M3bJY95s342-LLe+X6gzxDorAU1_bA@mail.gmail.com
Whole thread Raw
In response to Re: [GENERAL] explain analyze output: 0 rows, 1M loops  (Justin Pryzby <pryzby@telsasoft.com>)
List pgsql-general
On Wed, Nov 1, 2017 at 12:25 PM, Justin Pryzby <pryzby@telsasoft.com> wrote:
On Wed, Nov 01, 2017 at 12:19:21PM -0700, David G. Johnston wrote:
> On Wed, Nov 1, 2017 at 11:59 AM, Scott Marlowe <scott.marlowe@gmail.com>
> wrote:
>
> > So some of my output from an explain analyze here has a line that says
> > this:
> >
> > ex Scan using warranty_order_item_warranty_order_id_idx on
> > warranty_order_item woi_1 (cost=0.57..277.53 rows=6 width=137) (actual
> > time=0.110..0.111 rows=0 loops=1,010,844)
> >
>
> Not my strong suit but, I'm pretty sure that reads: "The index was queried
> 1M+ times and none of those inqueries resulted in a record being found".
> IIUC I'd be wondering why some form of hash join wasn't used...

Except that:

https://www.postgresql.org/docs/current/static/using-explain.html
"... the loops value reports the total number of executions of the node, and
the actual time and ROWS VALUES SHOWN ARE AVERAGES PER-EXECUTION."

I seem to recall a somewhat recent commit that dealt with this.  The problem is that with 1M loops a small number of rows returned will be indistinguishable from zero when computed as an average within finite precision.

Seeing entire plans, and not just a single line of one, tends to help too.

David J.

pgsql-general by date:

Previous
From: Justin Pryzby
Date:
Subject: Re: [GENERAL] explain analyze output: 0 rows, 1M loops
Next
From: Scott Marlowe
Date:
Subject: Re: [GENERAL] explain analyze output: 0 rows, 1M loopa