Analyzequery
Home Algebraic Transformations and Query Rewriting Heuristics vs. Cost-Based Models: A 40-Year Timeline of Query Optimization
Algebraic Transformations and Query Rewriting

Heuristics vs. Cost-Based Models: A 40-Year Timeline of Query Optimization

By Elias Thorne Feb 28, 2026
Heuristics vs. Cost-Based Models: A 40-Year Timeline of Query Optimization
All rights reserved to analyzequery.com

Relational Query Optimization Mechanics refers to the specialized discipline within database engineering that focuses on the translation of high-level declarative SQL queries into low-level execution plans. This process involves a rigorous analysis of algebraic transformations, where the database engine attempts to identify the most efficient sequence of operations to retrieve requested data. The field combines theoretical computer science, specifically relational algebra, with empirical performance metrics to minimize system resource consumption.

The evolution of this discipline over the last four decades has moved from simple rule-based decision-making to complex cost-based models that rely on sophisticated statistical estimations. This progression was necessitated by the exponential growth of data volumes and the increasing complexity of relational schemas, which rendered early heuristic approaches insufficient for maintaining performance stability in enterprise environments.

Timeline

  • 1973–1975:Researchers at the University of California, Berkeley, develop Ingres. The system implements a "greedy" heuristic for query decomposition, breaking complex queries into simpler pieces based on immediate local benefits without considering the global cost of the entire plan.
  • 1979:P. Griffiths Selinger and colleagues at IBM Research publish "Access Path Selection in a Relational Database Management System." This landmark paper introduces the concept of cost-based optimization (CBO), utilizing statistics about data distribution to estimate the cost of various execution paths.
  • 1980s:Most commercial relational database management systems (RDBMS) rely on Rule-Based Optimizers (RBO). These systems follow a fixed hierarchy of rules, such as prioritizing index scans over full table scans regardless of table size.
  • 1992:A significant industry turning point occurs as Oracle releases Version 7, introducing a cost-based optimizer alongside its traditional RBO. This marks the beginning of the transition toward statistics-driven execution planning in commercial software.
  • 1996:Postgres95 is released as PostgreSQL 6.0. It incorporates a more sophisticated optimizer architecture capable of handling complex join ordering, setting the stage for modern open-source query planning.
  • 2005:PostgreSQL 8.0 introduces significant improvements to cost estimation and the Genetic Query Optimizer (GEQO), which manages extremely large join sets that would otherwise result in an exponential search space.
  • 2010s:The rise of adaptive query optimization begins. Modern engines now incorporate feedback loops where the actual execution costs are used to refine subsequent plans, addressing the limitations of static cardinality estimations.

Background

The fundamental challenge of Relational Query Optimization Mechanics lies in the declarative nature of SQL. Because a user specifiesWhatData is needed rather thanHowTo retrieve it, the database engine must act as a compiler that translates abstract logic into physical I/O operations. This translation occurs through three primary phases: parsing, rewriting, and optimization.

During the rewriting phase, the engine applies algebraic identities to the query graph. For example, the engine may perform predicate pushdown, moving filter conditions closer to the data source to reduce the volume of rows processed in later stages. View merging is another common transformation, where the engine flattens nested subqueries to expose more join ordering possibilities to the optimizer. These transformations are technically valid in all scenarios but may not always lead to faster execution, necessitating a evaluation mechanism.

The Role of Relational Algebra

At the core of every optimizer is a set of algebraic rules derived from the work of E.F. Codd. These rules allow the optimizer to rearrange the order of operations without changing the final result set. Common transformations include:

  • Commutativity of Joins:The order of table A joined with table B is logically equivalent to table B joined with table A.
  • Associativity of Joins:(A joined with B) joined with C is the same as A joined with (B joined with C).
  • Selection Split/Merge:Multiple filter conditions can be applied simultaneously or sequentially depending on index availability.

The Transition from Heuristics to Cost-Based Models

Early database systems relied on heuristics, often called Rule-Based Optimizers (RBO). These systems were predictable but rigid. An RBO might always choose to use a B-tree index if one existed on a column. While this is often efficient, it becomes a performance bottleneck if the column has low cardinality—such as a "gender" or "status" column—where a full table scan would actually be faster due to the overhead of index lookups and subsequent random I/O.

The shift toward Cost-Based Optimizers (CBO) was driven by the changing economics of hardware in the late 1980s and early 1990s. As storage capacities grew faster than I/O throughput, the penalty for a sub-optimal execution plan increased. A CBO assigns a numeric "cost" to every potential operation (CPU cycles, sequential disk reads, random disk reads). By summing these costs, the optimizer can compare thousands of potential execution plans to find the one with the lowest estimated total cost.

FeatureRule-Based (Heuristic)Cost-Based (CBO)
Primary InputFixed order of precedenceData statistics (Histograms)
FlexibilityRigid, ignores data volumeDynamic, adapts to data changes
ComplexityLow, easy to debugHigh, requires statistical accuracy
MaintenanceStatic rulesRequires periodic `ANALYZE` tasks

PostgreSQL: A Case Study in Optimizer Evolution

PostgreSQL provides a documented history of the transition from simpler planning to advanced CBO mechanics. In early versions, the planner relied heavily on fixed costs. However, as the system matured, the development team introduced more granular control over how costs were calculated. A key moment in this evolution was the refinement of theRandom_page_costAndSeq_page_costParameters, which allowed administrators to tune the optimizer based on the specific latency characteristics of their storage hardware (e.g., SSDs versus traditional spinning disks).

The transition to more complex CBO mechanics in PostgreSQL also highlighted the challenge of "plan instability." Across version releases, such as the move from 8.4 to 9.x, changes in the statistical estimator algorithms occasionally caused the optimizer to choose different plans for the same query. This phenomenon demonstrated that as optimizers become more sophisticated, they also become more sensitive to the accuracy of the underlying data distribution statistics. To mitigate this, PostgreSQL introduced extended statistics, allowing the engine to understand dependencies between multiple columns, which significantly improved cardinality estimations for complexWHEREClauses.

Join Algorithm Selection

A significant portion of an optimizer's work is selecting the correct join algorithm. The mechanics of this choice depend heavily on estimated row counts (cardinality):

  • Nested Loop Join:Often chosen when one side of the join is very small. The engine iterates through the outer table and performs a lookup for every row in the inner table.
  • Hash Join:Preferred for large, unsorted datasets. The engine builds a hash table of the smaller relation in memory and then probes it with the larger relation.
  • Merge Join:Most effective when both datasets are already sorted by the join key. The engine walks through both sets simultaneously, making it highly efficient for massive data volumes.
The objective of the optimizer is not necessarily to find the absolute best plan, which might take longer to calculate than to execute, but to avoid the worst possible plans through systematic pruning of the search space.

What sources disagree on

There remains significant debate among database theorists regarding the efficacy of Genetic Query Optimization (GEQO) versus traditional Dynamic Programming (DP) for large-scale joins. While DP guarantees the discovery of the mathematically optimal plan within the search space, its computational cost grows exponentially with the number of tables (typically becoming unfeasible beyond 10-12 tables). GEQO uses a heuristic-stochastic approach to find a "good enough" plan in a fraction of the time. Critics argue that GEQO introduces non-deterministic behavior into production environments, where the same query might have different execution plans on different runs, whereas proponents argue it is the only viable way to prevent the optimizer itself from becoming a bottleneck during the planning phase.

Furthermore, there is ongoing disagreement over the "cost" of the optimization process itself. Some modern distributed database architectures have begun to favor simpler, more predictable planners over highly complex CBOs, arguing that in a cloud-native environment with horizontally scalable resources, the consistency of execution is more valuable than the marginal gains of a highly optimized but potentially unstable plan.

#Relational Query Optimization# SQL Optimizer History# Cost-Based Optimization# PostgreSQL Query Planner# Selinger Paper# Join Algorithms# Database Heuristics
Elias Thorne

Elias Thorne

As Editor, Elias focuses on the historical evolution of cost-based optimization models and the enduring legacy of Selinger's principles. He meticulously tracks the shift from rule-based heuristics to modern algebraic transformations in database engines.

View all articles →

Related Articles

Cloud-Native Architectures Redefining Query Execution Plans Statistics and Cardinality Estimation All rights reserved to analyzequery.com

Cloud-Native Architectures Redefining Query Execution Plans

Elias Thorne - Apr 21, 2026
The Advancing Frontier of AI-Enhanced Query Optimizers Statistics and Cardinality Estimation All rights reserved to analyzequery.com

The Advancing Frontier of AI-Enhanced Query Optimizers

Elias Thorne - Apr 21, 2026
The Mechanics of SQL Performance: Refining Join Ordering and Statistical Accuracy Execution Plan Analysis and Visualization All rights reserved to analyzequery.com

The Mechanics of SQL Performance: Refining Join Ordering and Statistical Accuracy

Elias Thorne - Apr 20, 2026
Analyzequery