diff --git a/src/execution/physical_operator.cpp b/src/execution/physical_operator.cpp index 749c3082fbac..3fe08ddfa177 100644 --- a/src/execution/physical_operator.cpp +++ b/src/execution/physical_operator.cpp @@ -50,7 +50,7 @@ idx_t PhysicalOperator::EstimatedThreadCount() const { idx_t result = 0; if (children.empty()) { // Terminal operator, e.g., base table, these decide the degree of parallelism of pipelines - result = MaxValue(estimated_cardinality / Storage::ROW_GROUP_SIZE, 1); + result = MaxValue(estimated_cardinality / (Storage::ROW_GROUP_SIZE * 2), 1); } else if (type == PhysicalOperatorType::UNION) { // We can run union pipelines in parallel, so we sum up the thread count of the children for (auto &child : children) {