Re: explain format json, unit for serialize and memory are different.

jian he <jian.universality@gmail.com>

From: jian he <jian.universality@gmail.com>
To: David Rowley <dgrowleyml@gmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Michael Paquier <michael@paquier.xyz>, Daniel Gustafsson <daniel@yesql.se>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2024-05-15T03:40:11Z
Lists: pgsql-hackers
On Wed, May 15, 2024 at 10:13 AM David Rowley <dgrowleyml@gmail.com> wrote:
>
> On Wed, 15 May 2024 at 13:44, jian he <jian.universality@gmail.com> wrote:
> >        "Shared Hit Blocks": 0,
> >        "Shared Read Blocks": 0,
> >        "Shared Dirtied Blocks": 0,
> >        "Shared Written Blocks": 0,
> >        "Local Hit Blocks": 0,
> >        "Local Read Blocks": 0,
> >        "Local Dirtied Blocks": 0,
> >        "Local Written Blocks": 0,
> >        "Temp Read Blocks": 0,
> >        "Temp Written Blocks": 0
> >
> > these information duplicated for json key "Serialization" and json key
> > "Planning"
> > i am not sure this is intended?
>
> Looks ok to me.  Buffers used during planning are independent from the
> buffers used when outputting rows to the client.
>

looking at serializeAnalyzeReceive.
I am not sure which part of serializeAnalyzeReceive will update pgBufferUsage.

I am looking for an example where this information under json key
"Serialization" is not zero.
So far I have tried:

create table s(a text);
insert into s select repeat('a', 1024) from generate_series(1,1024);
explain (format json, analyze, wal, buffers, memory, serialize, timing
off)  select * from s;



Commits

  1. Fix some inconsistencies in EXPLAIN output