Snowflake Schema Query Optimization via Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current database query optimization techniques struggle to scale effectively for large numbers of tables in data-warehouse applications, leading to inefficient join order enumeration and increased computational complexity.

Innovation Solution

A scalable approach to generating logical access plans that considers a broader space of join orders beyond left-deep trees, utilizing a greedy algorithm to partition tables and treat record sets from subplans as inputs, allowing for the generation of plans for multiple independent snowflake schemas, particularly benefiting column-store databases.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional query optimization techniques are used for data warehouse queries, then query execution can be optimized for small numbers of tables, but the computational complexity increases exponentially when the number of tables grows large

Engineering Contradiction:
Improvequery optimization efficiencyVSAvoidcomputational complexity of join order enumeration
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the query optimization problem by identifying independent snowflake schemas within the query. Each independent schema is optimized separately using greedy algorithms, avoiding the need to enumerate all possible join orders across the entire query. This segmentation reduces the computational complexity from exponential to linear in the number of tables.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a dynamic approach by using a greedy algorithm that adaptively selects join orders based on local schema characteristics rather than pre-computing all possibilities. The algorithm dynamically partitions tables and generates access plans on-the-fly, making the optimization process scalable to large numbers of tables.

Inventive Principle:
Principle #15Dynamics

2Manufacturing precision

If comprehensive join order enumeration is performed to find optimal query plans, then query execution quality improves, but the time required for query optimization increases exponentially

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

Solution Approach 1:

By dividing the query into independent snowflake schema components, the patent enables separate optimization of each component. This segmentation allows the system to find good-enough join orders for each schema without exhaustively searching all possible combinations across the entire query, significantly reducing optimization time while maintaining acceptable plan quality.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies a greedy algorithm that performs partial enumeration of join orders by focusing on locally optimal choices within each snowflake schema rather than exhaustively exploring all global possibilities. This partial action approach achieves satisfactory query plan quality with dramatically reduced optimization time.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS8671091B2Optimizing snowflake schema queries
Publication Date: 2014.03.11 MICRO FOCUS LLC
  • US8671091B2 patent drawing
  • US8671091B2 patent drawing
  • US8671091B2 patent drawing

AI summary

For a database query that defines a plurality of separate snowflake schemas, a query optimizer computes separately for each of the snowflake schemas a logical access plan for obtaining from that schema's tables a respective record set that includes the data requested from those tables by that query. The query optimizer also computes a logical access plan for obtaining the query's results from the record sets in which execution of the logical access plans thus computed will result.