mirror of
https://github.com/postgres/postgres.git
synced 2025-11-07 19:06:32 +03:00
Invent min_parallel_relation_size GUC to replace a hard-wired constant.
The main point of doing this is to allow the cutoff to be set very small, even zero, to allow parallel-query behavior to be tested on relatively small tables such as we typically use in the regression tests. But it might be of use to users too. The number-of-workers scaling behavior in create_plain_partial_paths() is pretty ad-hoc and subject to change, so we won't expose anything about that, but the notion of not considering parallel query at all for tables below size X seems reasonably stable. Amit Kapila, per a suggestion from me Discussion: <17170.1465830165@sss.pgh.pa.us>
This commit is contained in:
@@ -2747,6 +2747,17 @@ static struct config_int ConfigureNamesInt[] =
|
||||
NULL, NULL, NULL
|
||||
},
|
||||
|
||||
{
|
||||
{"min_parallel_relation_size", PGC_USERSET, QUERY_TUNING_COST,
|
||||
gettext_noop("Sets the minimum size of relations to be considered for parallel scan."),
|
||||
NULL,
|
||||
GUC_UNIT_BLOCKS,
|
||||
},
|
||||
&min_parallel_relation_size,
|
||||
1024, 0, INT_MAX / 3,
|
||||
NULL, NULL, NULL
|
||||
},
|
||||
|
||||
{
|
||||
/* Can't be set in postgresql.conf */
|
||||
{"server_version_num", PGC_INTERNAL, PRESET_OPTIONS,
|
||||
|
||||
@@ -304,6 +304,7 @@
|
||||
#cpu_operator_cost = 0.0025 # same scale as above
|
||||
#parallel_tuple_cost = 0.1 # same scale as above
|
||||
#parallel_setup_cost = 1000.0 # same scale as above
|
||||
#min_parallel_relation_size = 8MB
|
||||
#effective_cache_size = 4GB
|
||||
|
||||
# - Genetic Query Optimizer -
|
||||
|
||||
Reference in New Issue
Block a user