EXPLAIN of Parallel Append
От | Jesper Pedersen |
---|---|
Тема | EXPLAIN of Parallel Append |
Дата | |
Msg-id | f7b47ff9-ce7b-2e90-0082-f11fa4940079@redhat.com обсуждение исходный текст |
Ответы |
Re: EXPLAIN of Parallel Append
|
Список | pgsql-hackers |
Hi, Given -- test.sql -- CREATE TABLE t1 ( a integer NOT NULL, b integer NOT NULL ) PARTITION BY HASH (b); CREATE TABLE t1_p00 PARTITION OF t1 FOR VALUES WITH (MODULUS 4, REMAINDER 0); CREATE TABLE t1_p01 PARTITION OF t1 FOR VALUES WITH (MODULUS 4, REMAINDER 1); CREATE TABLE t1_p02 PARTITION OF t1 FOR VALUES WITH (MODULUS 4, REMAINDER 2); CREATE TABLE t1_p03 PARTITION OF t1 FOR VALUES WITH (MODULUS 4, REMAINDER 3); INSERT INTO t1 (SELECT i, i FROM generate_series(1, 1000000) AS i); ANALYZE; -- test.sql -- Running EXPLAIN (ANALYZE) SELECT * FROM t1 WHERE a = 5432; gives Gather (cost=1000.00..12780.36 rows=4 width=8) (actual time=61.270..61.309 rows=1 loops=1) Workers Planned: 2 Workers Launched: 2 -> Parallel Append (cost=0.00..11779.96 rows=4 width=8) (actual time=38.915..57.209 rows=0 loops=3) -> Parallel Seq Scan on t1_p01 (cost=0.00..2949.00 rows=1 width=8) (actual time=38.904..38.904 rows=0 loops=1) Filter: (a = 5432) Rows Removed by Filter: 250376 -> Parallel Seq Scan on t1_p03 (cost=0.00..2948.07 rows=1 width=8) (actual time=0.369..47.909 rows=1 loops=1) Filter: (a = 5432) Rows Removed by Filter: 250248 -> Parallel Seq Scan on t1_p02 (cost=0.00..2942.66 rows=1 width=8) (actual time=11.354..11.354 rows=0 loops=3) Filter: (a = 5432) Rows Removed by Filter: 83262 -> Parallel Seq Scan on t1_p00 (cost=0.00..2940.21 rows=1 width=8) (actual time=50.745..50.745 rows=0 loops=1) Filter: (a = 5432) Rows Removed by Filter: 249589 Planning time: 0.381 ms Execution time: 62.810 ms (18 rows) Parallel Append's ntuples is 1, but given nloops is 3 you end up with the slightly confusing "(actual ... *rows=0* loops=3)". Using master (3b7ab438). Thoughts ? Best regards, Jesper
В списке pgsql-hackers по дате отправления: