On Wednesday, November 17, 2021 4:19 PM, Guillaume Lelarge 
guilla...@lelarge.info<mailto:guilla...@lelarge.info> wrote:
>> ->  Parallel Seq Scan on c  (cost=0.00..8591.67 rows=416667 width=0) (actual 
>> time=0.030..140.036 rows=333333 loops=3)
>In my previous example, actual row number is 333333*3=1e6(which is correct), 
>so I think the actual time is 140.036*3ms.
>Do your think the loops(3) has no meaning for parallel scan node when 
>calculate actual time?
>
>As far as I understand it, you have to multiply the number of rows by the 
>number of loops, but this doesn't apply to duration at least for parallel 
>>queries.

Yes, I got your point.
I’m not familiar with PostgreSQL planner/executor, but if the code is correct, 
then maybe some modification should be done at [1] as below:

Before:
Multiply by the loops value to get the total time actually spent in the node.

After:
Multiply by the loops value to get the total time actually spent in the node 
(for node in the parallel portion of the plan, this is not needed).

[1] https://www.postgresql.org/docs/14/using-explain.html

What do you think?

Regards,
Tang

Reply via email to