Join Predicate Pushdown for Database Query Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current database systems face inefficiencies in query optimization due to limited transformation capabilities, leading to costly evaluation of numerous possible execution plans during query optimization.

Innovation Solution

The implementation of novel join predicate pushdown transformations allows for more efficient query optimization by pushing join predicates into views, opening new access paths and enabling more efficient execution plans, such as index-based nested-loop joins, which can remove expensive operators like GROUP BY and DISTINCT.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Manufacturing precision

If the query optimizer performs more kinds of transformations under more kinds of conditions, then the quality of execution plans improves, but the computational cost of query optimization increases

Engineering Contradiction:
Improveexecution plan qualityVSAvoidcomputational cost
Core Design Contradiction:
Manufacturing precisionVSUse of energy by moving object

Solution Approach 1:

The patent applies preliminary action by pushing join predicates down into views during query transformation, before execution. This advance preparation enables more efficient execution plans by pre-establishing join conditions, allowing the optimizer to generate higher quality plans without proportionally increasing optimization cost.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent changes the parameter of query transformation by introducing join predicate pushdown as a new transformation type. This parameter change enables the system to explore additional transformation spaces and generate better execution plans while managing optimization complexity through targeted application of the transformation.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If join predicate pushdown transformations are implemented, then query execution efficiency improves, but the complexity of query optimization increases

Engineering Contradiction:
Improvequery execution efficiencyVSAvoidquery optimization complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the query optimization process by applying join predicate pushdown specifically to view transformations. This segmentation allows the complex optimization task to be broken into manageable parts, improving execution efficiency through targeted transformations without overwhelming the optimizer with excessive complexity.

Inventive Principle:
Principle #1Segmentation

3Manufacturing precision

If more transformation options are generated during query optimization, then the optimal execution plan quality improves, but the time required for query optimization increases

Engineering Contradiction:
Improveexecution plan qualityVSAvoidquery optimization time
Core Design Contradiction:
Manufacturing precisionVSLoss of time

Solution Approach 1:

By performing join predicate pushdown as a preliminary transformation step, the patent enables the generation of higher quality execution plans with reduced optimization time. The advance preparation of join conditions in views creates a more favorable basis for subsequent optimization steps, improving plan quality without linearly increasing optimization time.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7945562B2Join predicate push-down optimizations
Publication Date: 2011.05.17 ORACLE INT CORP
  • US7945562B2 patent drawing
  • US7945562B2 patent drawing
  • US7945562B2 patent drawing

AI summary

Join predicate push down transformations push down a join predicate of an outer query into a view. Among the types of views for which join predicate push down is performed are a view with a GROUP BY or DISTINCT operator, an anti-joined or semi-joined view, and a view that contains one or more nested views. During optimization, join predicate push down may be used to generate many transformed queries for comparison. The number of query transformations performed for comparison is managed.