diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java b/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java index e723f3a759..646a113343 100755 --- a/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java +++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java @@ -1613,6 +1613,9 @@ public class Env { // stop mtmv scheduler mtmvJobManager.stop(); + if (analysisManager != null) { + analysisManager.getStatisticsCache().preHeat(); + } } // Set global variable 'lower_case_table_names' only when the cluster is initialized. diff --git a/fe/fe-core/src/main/java/org/apache/doris/statistics/AnalysisManager.java b/fe/fe-core/src/main/java/org/apache/doris/statistics/AnalysisManager.java index f25cbe8a2b..ae8e710638 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/statistics/AnalysisManager.java +++ b/fe/fe-core/src/main/java/org/apache/doris/statistics/AnalysisManager.java @@ -281,6 +281,9 @@ public class AnalysisManager extends Daemon implements Writable { } public void createAnalyze(AnalyzeStmt analyzeStmt, boolean proxy) throws DdlException { + if (!StatisticsUtil.statsTblAvailable() && !FeConstants.runningUnitTest) { + throw new DdlException("Stats table not available, please make sure your cluster status is normal"); + } if (analyzeStmt instanceof AnalyzeDBStmt) { createAnalysisJobs((AnalyzeDBStmt) analyzeStmt, proxy); } else if (analyzeStmt instanceof AnalyzeTblStmt) { @@ -350,11 +353,7 @@ public class AnalysisManager extends Daemon implements Writable { @Nullable @VisibleForTesting - public AnalysisInfo buildAndAssignJob(AnalyzeTblStmt stmt) throws DdlException { - if (!StatisticsUtil.statsTblAvailable() && !FeConstants.runningUnitTest) { - throw new DdlException("Stats table not available, please make sure your cluster status is normal"); - } - + protected AnalysisInfo buildAndAssignJob(AnalyzeTblStmt stmt) throws DdlException { AnalysisInfo jobInfo = buildAnalysisJobInfo(stmt); if (jobInfo.colToPartitions.isEmpty()) { // No statistics need to be collected or updated diff --git a/fe/fe-core/src/main/java/org/apache/doris/statistics/util/StatisticsUtil.java b/fe/fe-core/src/main/java/org/apache/doris/statistics/util/StatisticsUtil.java index d7c635bf01..ed95f4bd1f 100644 --- a/fe/fe-core/src/main/java/org/apache/doris/statistics/util/StatisticsUtil.java +++ b/fe/fe-core/src/main/java/org/apache/doris/statistics/util/StatisticsUtil.java @@ -400,11 +400,12 @@ public class StatisticsUtil { .findTable(InternalCatalog.INTERNAL_CATALOG_NAME, dbName, StatisticConstants.STATISTIC_TBL_NAME)); - statsTbls.add( - (OlapTable) StatisticsUtil - .findTable(InternalCatalog.INTERNAL_CATALOG_NAME, - dbName, - StatisticConstants.HISTOGRAM_TBL_NAME)); + // uncomment it when hist is available for user. + // statsTbls.add( + // (OlapTable) StatisticsUtil + // .findTable(InternalCatalog.INTERNAL_CATALOG_NAME, + // dbName, + // StatisticConstants.HISTOGRAM_TBL_NAME)); } catch (Throwable t) { return false; }