diff --git a/src/gausskernel/process/postmaster/autovacuum.cpp b/src/gausskernel/process/postmaster/autovacuum.cpp index e357a44cd7cc18b502b67d10976b1c5dd4e0ead7..ae5e913bd08467ea719083d3b1c491aa9492f642 100755 --- a/src/gausskernel/process/postmaster/autovacuum.cpp +++ b/src/gausskernel/process/postmaster/autovacuum.cpp @@ -3719,8 +3719,8 @@ static void partition_needs_vacanalyze(Oid partid, AutoVacOpts* relopts, Form_pg partname = NameStr(partForm->relname); reltuples = partForm->reltuples; - anlthresh = (float4)anl_base_thresh + anl_scale_factor * reltuples; - vacthresh = (float4)vac_base_thresh + vac_scale_factor * reltuples; + anlthresh = (float4) fmin (anl_base_thresh + anl_scale_factor * reltuples , anl_base_thresh + anl_scale_factor * sqrt(reltuples) * 1000.0 ); + vacthresh = (float4) fmin (vac_base_thresh + vac_scale_factor * reltuples , vac_base_thresh + vac_scale_factor * sqrt(reltuples) * 1000.0 ); if (NULL != t_thrd.autovacuum_cxt.pgStatAutoVacInfo) { tablekey.statFlag = relid;