"actual time" in QUERY PLAN for parallel operation when loops is bigger than 1
От | PG Doc comments form |
---|---|
Тема | "actual time" in QUERY PLAN for parallel operation when loops is bigger than 1 |
Дата | |
Msg-id | 163705544128.11069.9460699508957759732@wrigleys.postgresql.org обсуждение исходный текст |
Ответы |
Re: "actual time" in QUERY PLAN for parallel operation when loops is bigger than 1
|
Список | pgsql-docs |
The following documentation comment has been logged on the website: Page: https://www.postgresql.org/docs/14/using-explain.html Description: https://www.postgresql.org/docs/14/using-explain.html The doc says "the loops value reports the total number of executions of the node, and the actual time and rows values shown are averages per-execution. This is done to make the numbers comparable with the way that the cost estimates are shown." But I found for parallel operation, the above description maybe not correct. For example postgres=# create table c(id int); CREATE TABLE postgres=# insert into c select generate_series(1,1000000); INSERT 0 1000000 postgres=# explain analyze select count(*) from c; QUERY PLAN ------------------------------------------------------------------------------------------------------------------------------------- Finalize Aggregate (cost=10633.55..10633.56 rows=1 width=8) (actual time=290.460..290.508 rows=1 loops=1) -> Gather (cost=10633.33..10633.54 rows=2 width=8) (actual time=289.605..290.484 rows=3 loops=1) Workers Planned: 2 Workers Launched: 2 -> Partial Aggregate (cost=9633.33..9633.34 rows=1 width=8) (actual time=188.336..188.337 rows=1 loops=3) -> Parallel Seq Scan on c (cost=0.00..8591.67 rows=416667 width=0) (actual time=0.030..140.036 rows=333333 loops=3) Planning Time: 0.331 ms Execution Time: 290.607 ms (8 rows) postgres=# According to PG-doc, the "Parallel Seq Scan" node cost 140.036*3=420ms, but the total cost for this SQL is only 290ms. Is the output of this explain correct?
В списке pgsql-docs по дате отправления: