User-Defined Index Auxiliary Properties for Query Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional user-defined indexes in database systems are inefficient as they require two-stage data processing, leading to increased resource usage due to their inability to evaluate additional query predicates and ORDER BY clauses, resulting in poor query performance.

Innovation Solution

Extending user-defined indexes with auxiliary properties such as filtering and ordering capabilities, allowing them to evaluate query predicates and sort results directly, reducing the need for additional processing by the database server.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a conventional user-defined index is used to evaluate a user-defined operator, then the index can return row identifiers to the database server, but the database server must perform additional two-stage data processing which increases CPU and memory usage

Engineering Contradiction:
Improvequery processing efficiencyVSAvoidCPU and memory usage
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent merges the filtering and sorting operations into the index evaluation process itself. The extended user-defined index now performs not only the user-defined operator evaluation but also applies additional query predicates and performs sorting within the index structure, eliminating the need for separate two-stage processing by the database server.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The index is extended with auxiliary properties that enable it to pre-process data by applying filtering predicates and sorting operations before returning results to the database server. This preliminary action within the index structure reduces the workload on the database server and improves overall query processing efficiency.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If a user-defined index is used with additional selective predicates, then the index can evaluate the user-defined operator, but it returns many extra rows that require additional filtering which wastes CPU and I/O cycles

Engineering Contradiction:
Improvequery evaluation speedVSAvoidwasted CPU and I/O cycles
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The user-defined index is extended with multi-functionality through auxiliary properties. It can now evaluate the user-defined operator, apply additional filtering predicates, and perform sorting operations. This universal capability allows the index to handle multiple query requirements in a single operation, reducing unnecessary row returns and wasted processing cycles.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Productivity

If a user-defined index is used for queries with ORDER BY clauses, then the index can evaluate the user-defined operator, but it returns unsorted row identifiers requiring additional sorting processing which increases resource usage

Engineering Contradiction:
Improveoperator evaluation performanceVSAvoidsorting processing requirements
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The index is extended with an ordering auxiliary property that enables it to perform sorting operations within the index structure before returning row identifiers to the database server. This preliminary sorting action eliminates the need for additional sorting processing and reduces overall system resource usage.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7996387B2Techniques for extending user-defined indexes with auxiliary properties
Publication Date: 2011.08.09 ORACLE INT CORP
  • US7996387B2 patent drawing
  • US7996387B2 patent drawing
  • US7996387B2 patent drawing

AI summary

In one embodiment, a database server registers one or more functions included in a user-defined index that includes one or more auxiliary properties. The one or more functions are operable to generate index entries of the user-defined index for the one or more auxiliary properties. The one or more auxiliary properties are different than, and in addition to, a primary property of the user-defined index that provides for evaluating a query operator. The database server receives a first statement that defines the user-defined index, where the first statement includes one or more parameters that define the one or more auxiliary properties. The database server invokes the one or more functions in response to the first statement, where the one or more functions when invoked generate and store the index entries of the user-defined index according to the one or more parameters that define the one or more auxiliary properties.