Index Backbone Join for Database Query Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

As data volumes grow in relational databases, query optimizers face challenges in returning result sets quickly due to inefficient access plans, especially when dealing with medium selection criteria across multiple tables, leading to slower response times and increased data retrieval costs.

Innovation Solution

The index backbone join technique filters data using index entries before accessing tables, reducing unnecessary data reads by applying query criteria to index entries first, thereby minimizing table access and improving query performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the query optimizer uses traditional table scan or index scan methods for medium selection criteria, then it can handle queries with multiple tables, but it retrieves a large absolute number of rows resulting in slower response times

Engineering Contradiction:
Improvequery execution speedVSAvoidnumber of rows retrieved
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent segments the data retrieval process into two distinct phases: first retrieving only row identifiers (rowids) from indexes, then selectively retrieving full row data. This segmentation allows the system to separate the filtering operation from the data retrieval operation, significantly reducing the amount of data that needs to be processed and transferred.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies preliminary filtering actions by executing the query criteria against index entries before accessing the actual table data. The query optimizer first identifies matching rowids through index scans, then uses only those rowids to retrieve specific rows from tables. This preliminary action eliminates the need to retrieve and process entire tables or large portions of them.

Inventive Principle:
Principle #10Preliminary action

2Ease of operation

If the database reads entire data blocks containing multiple rows, then it simplifies the reading mechanism, but it increases the number of rows retrieved including those not matching criteria

Engineering Contradiction:
Improvedata reading simplicityVSAvoidnumber of rows retrieved
Core Design Contradiction:
Ease of operationVSQuantity of substance

Solution Approach 1:

The patent extracts only the essential information (row identifiers) from the index structures, separating this metadata from the full row data stored in tables. By taking out just the rowids needed for filtering, the system avoids reading unnecessary full row data, reducing I/O operations and processing overhead while maintaining the simplicity of block-based reading for the actual table access.

Inventive Principle:
Principle #2Taking out (Extraction)

3Device complexity

If the query optimizer cannot combine filter criteria across different tables, then it simplifies the query processing logic, but it results in reading unnecessary data from the first table

Engineering Contradiction:
Improvequery processing complexityVSAvoiddata read from tables
Core Design Contradiction:
Device complexityVSQuantity of substance

Solution Approach 1:

The patent merges the filtering operations across multiple tables by combining the results of index scans from different tables through a hash join operation. The rowids from the first table's index and the second table's index are matched and combined based on the join condition, allowing the system to effectively apply multiple filter criteria simultaneously without increasing processing complexity.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS8103658B2Index backbone join
Publication Date: 2012.01.24 ORACLE INT CORP
  • US8103658B2 patent drawing
  • US8103658B2 patent drawing
  • US8103658B2 patent drawing

AI summary

Techniques described herein perform an index backbone join of data that is contained within two or more tables. Significantly, key data are selected from the indices constructed on the tables, and such data are filtered by the query-indicated criteria, before any data is selected from the tables themselves. Row identifiers of the rows remaining after the index filtering has been performed are then used to select the qualifying rows (only) from the tables. Data selected from the tables is joined to produce query results. Because all of the filtering is performed based on index entries prior to any table access, and because index access is typically much faster than table access, queries whose results require very large quantities of data from multiple tables can be performed much more quickly.