diff --git a/src/share/stat/ob_stats_estimator.cpp b/src/share/stat/ob_stats_estimator.cpp index d0b9113143..7927564ec6 100644 --- a/src/share/stat/ob_stats_estimator.cpp +++ b/src/share/stat/ob_stats_estimator.cpp @@ -357,6 +357,7 @@ int ObStatsEstimator::do_estimate(uint64_t tenant_id, observer::ObInnerSQLConnectionPool *pool = static_cast(sql_proxy->get_pool()); sqlclient::ObISQLConnection *conn = NULL; + session->set_inner_session(); SMART_VAR(ObMySQLProxy::MySQLResult, proxy_result) { sqlclient::ObMySQLResult *client_result = NULL; if (OB_FAIL(pool->acquire(session, conn, lib::is_oracle_mode()))) { diff --git a/src/sql/optimizer/ob_join_order.cpp b/src/sql/optimizer/ob_join_order.cpp index 61de271746..db8c21eb7a 100644 --- a/src/sql/optimizer/ob_join_order.cpp +++ b/src/sql/optimizer/ob_join_order.cpp @@ -13852,7 +13852,7 @@ int ObJoinOrder::check_can_use_global_stat_instead(const uint64_t ref_table_id, LOG_WARN("failed to push back global partition id", K(ret)); } else { can_use = true; - scale_ratio = 1.0 * all_used_parts.count() / table_schema.get_all_part_num(); + scale_ratio = ObOptSelectivity::revise_between_0_1(1.0 * all_used_parts.count() / table_schema.get_all_part_num()); } } else if (PARTITION_LEVEL_TWO == table_schema.get_part_level()) { int64_t total_subpart_cnt = 0; @@ -13891,11 +13891,11 @@ int ObJoinOrder::check_can_use_global_stat_instead(const uint64_t ref_table_id, LOG_WARN("failed to push back global partition id", K(ret)); } else { can_use = true; - scale_ratio = 1.0 * all_used_parts.count() / table_schema.get_all_part_num(); + scale_ratio = ObOptSelectivity::revise_between_0_1(1.0 * all_used_parts.count() / table_schema.get_all_part_num()); } } else { can_use = true; - scale_ratio = 1.0 * all_used_parts.count() / total_subpart_cnt; + scale_ratio = ObOptSelectivity::revise_between_0_1(1.0 * all_used_parts.count() / total_subpart_cnt); } } }