Re: speeding up planning with partitions
Amit Langote <langote_amit_f8@lab.ntt.co.jp>
On 2018/08/30 10:09, Tsunakawa, Takayuki wrote: > From: Amit Langote [mailto:Langote_Amit_f8@lab.ntt.co.jp] >> I measured the gain in performance due to each patch on a modest virtual >> machine. Details of the measurement and results follow. > > Amazing! Thanks. > UPDATE >> nparts master 0001 0002 0003 >> ====== ====== ==== ==== ==== >> 0 2856 2893 2862 2816 >> 8 507 1115 1447 1872 > > SELECT >> nparts master 0001 0002 0003 >> ====== ====== ==== ==== ==== >> 0 2290 2329 2319 2268 >> 8 1058 1077 1414 1788 > > Even a small number of partitions still introduces a not-small overhead (UPDATE:34%, SELECT:22%). Yeah, that's true. > Do you think this overhead can be reduced further? We can definitely try, but I'm not immediately sure if the further improvements will come from continuing to fix the planner. Maybe, the overhead of partitioning could be attributed to other parts of the system. > What part do you guess would be relevant? This one? > >> that it is now performed after pruning. However, it doesn't do anything >> about the fact that partitions are all still locked in the earlier phase. Actually, I wrote that for patch 0002. The next patch (0003) is meant to fix that. So, the overhead you're seeing is even after making sure that only the selected partitions are locked. Thanks, Amit
Commits
-
Clean up handling of constraint_exclusion and enable_partition_pruning.
- e03ff739695c 12.0 landed
- 11ea45ffec9a 11.3 landed
-
Add test case exercising formerly-unreached code in inheritance_planner.
- 8fba397f0ca7 12.0 landed
-
Speed up planning when partitions can be pruned at plan time.
- 428b260f87e8 12.0 landed
-
Avoid crash in partitionwise join planning under GEQO.
- 7ad6498fd5a6 12.0 landed
- d70c147fa217 11.3 landed
-
Avoid passing query tlist around separately from root->processed_tlist.
- 333ed246c6f3 12.0 landed
-
Build "other rels" of appendrel baserels in a separate step.
- 53bcf5e3dbea 12.0 landed
-
Get rid of duplicate child RTE for a partitioned table.
- e8d5dd6be79e 12.0 landed
-
Rearrange make_partitionedrel_pruneinfo to avoid work when we can't prune.
- 734308a22072 12.0 landed
-
Don't copy PartitionBoundInfo in set_relation_partition_info.
- c8151e642368 12.0 landed
-
Move building of child base quals out into a new function
- 80579f9bb171 12.0 landed
-
Reorganize planner code moved in b60c39759908
- d723f56872a9 12.0 landed
-
Move inheritance expansion code into its own file
- b60c39759908 12.0 landed
-
Fix inherited UPDATE/DELETE with UNION ALL subqueries.
- c03ad5602f52 9.4.0 cited
-
Rearrange planner to save the whole PlannerInfo (subroot) for a subquery.
- b3aaf9081a1a 9.2.0 cited