Re: Detoasting optionally to make Explain-Analyze less misleading
От | Tomas Vondra |
---|---|
Тема | Re: Detoasting optionally to make Explain-Analyze less misleading |
Дата | |
Msg-id | 886b209f-8736-9cf2-ab9c-89870dea7bd8@enterprisedb.com обсуждение исходный текст |
Ответ на | Re: Detoasting optionally to make Explain-Analyze less misleading (Matthias van de Meent <boekewurm+postgres@gmail.com>) |
Ответы |
Re: Detoasting optionally to make Explain-Analyze less misleading
|
Список | pgsql-hackers |
On 11/2/23 21:02, Matthias van de Meent wrote: > On Thu, 2 Nov 2023 at 20:32, Tomas Vondra <tomas.vondra@enterprisedb.com> wrote: >> On 11/2/23 20:09, stepan rutz wrote: >>> db1=# explain (analyze, serialize) select * from test; >>> QUERY PLAN >>> --------------------------------------------------------------------------------------------------- >>> Seq Scan on test (cost=0.00..22.00 rows=1200 width=40) (actual >>> time=0.023..0.027 rows=1 loops=1) >>> Planning Time: 0.077 ms >>> Execution Time: 303.281 ms >>> Serialized Bytes: 78888953 Bytes. Mode Text. Bandwidth 248.068 MB/sec >> [...] >> BTW if you really want to print amount of memory, maybe print it in >> kilobytes, like every other place in explain.c? > > Isn't node width in bytes, or is it an opaque value not to be > interpreted by users? I've never really investigated that part of > Postgres' explain output... > Right, "width=" is always in bytes. But fields like amount of sorted data is in kB, and this seems closer to that. >> Also, explain generally >> prints stuff in "key: value" style (in text format). > > That'd be key: metrickey=metricvalue for expanded values like those in > plan nodes and the buffer usage, no? > Possibly. But the proposed output does neither. Also, it starts with "Serialized Bytes" but then prints info about bandwidth. >>> Serialized Bytes: 78888953 Bytes. Mode Text. Bandwidth 248.068 MB/sec > > I was thinking more along the lines of something like this: > > [...] > Execution Time: xxx ms > Serialization: time=yyy.yyy (in ms) size=yyy (in KiB, or B) mode=text > (or binary) > > This is significantly different from your output, as it doesn't hide > the measured time behind a lossy calculation of bandwidth, but gives > the measured data to the user; allowing them to derive their own > precise bandwidth if they're so inclined. > Might work. I'm still not convinced we need to include the mode, or that the size is that interesting/useful, though. regards -- Tomas Vondra EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
В списке pgsql-hackers по дате отправления: