提交 f2eae615 编写于 作者: V Venkatesh Raghavan

Adding guc to tune the Orca's cost model for sort.

This guc allow us to change the cost of sort and tuning the query plan
generated by Orca for better performance.
上级 7d3ff1bb
......@@ -906,6 +906,19 @@ COptTasks::SetCostModelParams
CDouble dNLJFactor(optimizer_nestloop_factor);
pcm->Pcp()->SetParam(pcp->UlId(), dNLJFactor, dNLJFactor - 0.5, dNLJFactor + 0.5);
}
if (optimizer_sort_factor > 1.0 || optimizer_sort_factor < 1.0)
{
// change sort cost factor
ICostModelParams::SCostParam *pcp = NULL;
if (OPTIMIZER_GPDB_CALIBRATED == optimizer_cost_model)
{
pcp = pcm->Pcp()->PcpLookup(CCostModelParamsGPDB::EcpSortTupWidthCostUnit);
CDouble dSortFactor(optimizer_sort_factor);
pcm->Pcp()->SetParam(pcp->UlId(), pcp->DVal() * optimizer_sort_factor, pcp->DLowerBound() * optimizer_sort_factor, pcp->DUpperBound() * optimizer_sort_factor);
}
}
}
......
......@@ -537,6 +537,7 @@ int optimizer_samples_number;
int optimizer_log_failure;
double optimizer_cost_threshold;
double optimizer_nestloop_factor;
double optimizer_sort_factor;
bool optimizer_cte_inlining;
int optimizer_cte_inlining_bound;
double optimizer_damping_factor_filter;
......@@ -4948,6 +4949,16 @@ struct config_real ConfigureNamesReal_gp[] =
1024.0, 1.0, DBL_MAX, NULL, NULL
},
{
{"optimizer_sort_factor",PGC_USERSET, DEVELOPER_OPTIONS,
gettext_noop("set the sort cost factor in the optimizer, 1.0 means same as default, > 1.0 means more costly than default, < 1.0 means means less costly than default"),
NULL,
GUC_NO_SHOW_ALL | GUC_NOT_IN_SAMPLE
},
&optimizer_sort_factor,
1.0, 0.0, DBL_MAX, NULL, NULL
},
/* End-of-list marker */
{
{NULL, 0, 0, NULL, NULL}, NULL, 0.0, 0.0, 0.0, NULL, NULL
......
......@@ -447,6 +447,7 @@ extern int optimizer_samples_number;
extern int optimizer_log_failure;
extern double optimizer_cost_threshold;
extern double optimizer_nestloop_factor;
extern double optimizer_sort_factor;
extern bool optimizer_cte_inlining;
extern int optimizer_cte_inlining_bound;
extern double optimizer_damping_factor_filter;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册