diff --git a/ydb/library/yql/dq/opt/dq_opt_join_cost_based.cpp b/ydb/library/yql/dq/opt/dq_opt_join_cost_based.cpp index 38d824e9aedd..0ecc17f15323 100644 --- a/ydb/library/yql/dq/opt/dq_opt_join_cost_based.cpp +++ b/ydb/library/yql/dq/opt/dq_opt_join_cost_based.cpp @@ -1014,7 +1014,7 @@ std::shared_ptr OptimizeSubtree(const std::shared_ptrLeftArg, joinTree->RightArg, joinTree->JoinConditions, joinTree->JoinType, ctx); } - TGraph<64> joinGraph; + TGraph<128> joinGraph; TVector> rels; std::set> joinConditions; @@ -1024,10 +1024,10 @@ std::shared_ptr OptimizeSubtree(const std::shared_ptrLabels()); } - // Check if we have more rels than DPccp can handle (64) + // Check if we have more rels than DPccp can handle (128) // If that's the case - don't optimize the plan and just return it with // computed statistics - if (rels.size() >= 64) { + if (rels.size() >= 128) { ComputeStatistics(joinTree, ctx); return joinTree; } @@ -1055,7 +1055,7 @@ std::shared_ptr OptimizeSubtree(const std::shared_ptr solver(joinGraph, rels, ctx); + TDPccpSolver<128> solver(joinGraph, rels, ctx); // Check that the dynamic table of DPccp is not too big // If it is, just compute the statistics for the join tree and return it @@ -1172,7 +1172,7 @@ class TOptimizerNative: public IOptimizer { TOutput JoinSearch() override { auto dummyProviderCtx = TDummyProviderContext(); - TDPccpSolver<64> solver(JoinGraph, Rels, dummyProviderCtx); + TDPccpSolver<128> solver(JoinGraph, Rels, dummyProviderCtx); std::shared_ptr result = solver.Solve(); if (Log) { std::stringstream str; @@ -1282,7 +1282,7 @@ class TOptimizerNative: public IOptimizer { const std::function Log; TVector> Rels; - TGraph<64> JoinGraph; + TGraph<128> JoinGraph; }; IOptimizer* MakeNativeOptimizer(const IOptimizer::TInput& input, const std::function& log) { diff --git a/ydb/library/yql/providers/dq/common/yql_dq_settings.h b/ydb/library/yql/providers/dq/common/yql_dq_settings.h index 3530a3178e8b..0b91a562fa78 100644 --- a/ydb/library/yql/providers/dq/common/yql_dq_settings.h +++ b/ydb/library/yql/providers/dq/common/yql_dq_settings.h @@ -57,7 +57,7 @@ struct TDqSettings { static constexpr ETaskRunnerStats TaskRunnerStats = ETaskRunnerStats::Basic; static constexpr ESpillingEngine SpillingEngine = ESpillingEngine::Disable; static constexpr ui32 CostBasedOptimizationLevel = 0; - static constexpr ui32 MaxDPccpDPTableSize = 10000U; + static constexpr ui32 MaxDPccpDPTableSize = 16400U; };