SQL Group-By Optimization via Aggregation Condition Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing database management systems limit the applicability of group-by transformations in SQL queries, particularly when all database objects are involved in aggregate function expressions, restricting the potential states and efficiency of query rewriting.

Innovation Solution

Distinguishing between aggregation-condition database objects and aggregation-source database objects within aggregate function expressions allows for the application of group-by transformations to a wider range of queries, enabling early grouping optimizations that reduce the input cardinality and improve query performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If GBP transformation is applied to queries where all database objects are involved in aggregate function expressions, then the applicability and productivity of query optimization is improved, but previously such transformations were restricted and not applicable to these queries

Engineering Contradiction:
Improvequery execution speedVSAvoidapplicability of GBP transformation
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent segments the set of all database objects in aggregate function expressions into two distinct categories: aggregation-condition database objects (those appearing only in condition checks) and aggregation-source database objects (those appearing in aggregate source portions). This segmentation enables selective application of early grouping transformations to aggregation-source objects while excluding aggregation-condition objects, thereby extending GBP applicability to queries that previously would have been ineligible.

Inventive Principle:
Principle #1Segmentation

2Productivity

If early group-by operation is applied, then the input cardinality to subsequent operations is reduced and performance improves, but additional costs are incurred and cardinality reduction is not always substantial

Engineering Contradiction:
Improvequery performanceVSAvoidadditional operation costs
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies partial grouping transformations only to aggregation-source database objects rather than all database objects in the query. By selectively grouping only the subset of objects that contribute to aggregate values (excluding condition-check objects), the system achieves cardinality reduction with minimized additional computational overhead, avoiding the excessive costs of full query-wide grouping.

Inventive Principle:
Principle #16Partial or excessive action

3Productivity

If the state space of GBP transformation is increased, then more potential transformation states are considered and better optimization is achieved, but the complexity of evaluating all states increases

Engineering Contradiction:
Improvequery optimization efficiencyVSAvoidstate space evaluation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the database objects into aggregation-condition and aggregation-source categories, which naturally partitions the state space of possible GBP transformations. This segmentation reduces the combinatorial complexity of evaluating transformation states by focusing only on valid groupings of aggregation-source objects, thereby expanding the useful state space while managing evaluation complexity.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11636103B2Early grouping optimization for SQL statements with conditional expressions
Publication Date: 2023.04.25 ORACLE INT CORP
  • US11636103B2 patent drawing
  • US11636103B2 patent drawing
  • US11636103B2 patent drawing

AI summary

To increase the applicability of group-by placement (GBP) transformations, according to embodiments described herein, database objects referred to in the aggregate function expression of a query are analyzed to determine whether any of these database objects are referred to exclusively within a condition check portion of the aggregate function expression. Such database objects may be dealt with differently (i.e., with respect to inclusion in GBP views) than the rest of the database objects referred to in aggregate function expressions of the query. This distinction between (a) aggregation-condition database objects exclusively found in condition check portions of an aggregate function expression and (b) aggregation-source database objects within an aggregate function expression allows application of GBP transformation to a wider variety of queries and also increases the possible GBP states that can be costed for GBP transformation-eligible queries.