Re: Partition-wise join for join between (declaratively) partitioned tables
Alvaro Herrera <alvherre@alvh.no-ip.org>
Rafia Sabih wrote: > On completing the benchmark for all queries for the above mentioned > setup, following performance improvement can be seen, > Query | Patch | Head > 3 | 1455 | 1631 > 4 | 499 | 4344 > 5 | 1464 | 1606 > 10 | 1475 | 1599 > 12 | 1465 | 1790 > > Note that all values of execution time are in seconds. > To summarise, apart from Q4, all other queries are showing somewhat > 10-20% improvement. Saving 90% of time on the slowest query looks like a worthy improvement on its own right. However, you're reporting execution time only, right? What happens to planning time? In a quick look, $ grep 'Planning time' pg_part_*/4* pg_part_head/4_1.out: Planning time: 3390.699 ms pg_part_head/4_2.out: Planning time: 194.211 ms pg_part_head/4_3.out: Planning time: 210.964 ms pg_part_head/4_4.out: Planning time: 4150.647 ms pg_part_patch/4_1.out: Planning time: 7577.247 ms pg_part_patch/4_2.out: Planning time: 312.421 ms pg_part_patch/4_3.out: Planning time: 304.697 ms pg_part_patch/4_4.out: Planning time: 269.778 ms I think the noise in these few results is too large to draw any conclusions. Maybe a few dozen runs of EXPLAIN (w/o ANALYZE) would tell something significant? -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Commits
-
Add test for partitionwise join involving default partition.
- 4513d3a4be0b 12.0 landed
-
Rewrite the code that applies scan/join targets to paths.
- 11cf92f6e2e1 11.0 cited
-
Fix code related to partitioning schemes for dropped columns.
- cf7ab13bfb45 11.0 landed
-
Copy information from the relcache instead of pointing to it.
- 45866c75507f 11.0 landed
-
Basic partition-wise join functionality.
- f49842d1ee31 11.0 landed
-
Associate partitioning information with each RelOptInfo.
- 9140cf8269b0 11.0 landed
-
Expand partitioned table RTEs level by level, without flattening.
- 0a480502b092 11.0 landed
-
Set partitioned_rels appropriately when UNION ALL is used.
- 448aa36e8b96 10.0 landed
- 1555566d9ee1 11.0 landed
-
Remove dedicated B-tree root-split record types.
- 0c504a80cf2e 11.0 cited
-
Assorted preparatory refactoring for partition-wise join.
- e139f1953f29 11.0 cited
-
Teach adjust_appendrel_attrs(_multilevel) to do multiple translations.
- 480f1f4329f1 11.0 cited
-
Avoid unnecessary single-child Append nodes.
- d57929afc706 11.0 cited
-
Revisit handling of UNION ALL subqueries with non-Var output columns.
- dd4134ea56cb 9.2.0 cited