System and Methodology for Parallel Query Optimization Using Semantic-Based Partitioning
First Claim
1. In a database system comprising a database storing data in database tables, a method for improving query performance by dynamically partitioning said data, the method comprising:
- generating a plurality of subplans for obtaining data requested by the query, each subplan including one or more operators for performing relational operations;
determining if partitioning of data is potentially useful for performing a given relational operation;
adding operators for partitioning data and performing the given relational operation in parallel to at least some of said plurality of subplans if partitioning of data is determined to be potentially useful; and
building a plan for execution of the query based, at least in part, upon selecting subplans having favorable execution costs.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and methodology for parallel query optimization using semantic-based partitioning is described. In one embodiment, for example, in a database system comprising a database storing data in database tables, a method is described for improving query performance by dynamically partitioning the data, the method comprises steps of: receiving a query requesting data from the database; generating a plurality of subplans for executing the query, each subplan including one or more operators for performing relational operations; adding operators for partitioning data and performing a given relational operation in parallel to at least some of the plurality of subplans; and building a plan for execution of the query based, at least in part, upon selecting subplans having favorable execution costs
657 Citations
47 Claims
-
1. In a database system comprising a database storing data in database tables, a method for improving query performance by dynamically partitioning said data, the method comprising:
-
generating a plurality of subplans for obtaining data requested by the query, each subplan including one or more operators for performing relational operations;
determining if partitioning of data is potentially useful for performing a given relational operation;
adding operators for partitioning data and performing the given relational operation in parallel to at least some of said plurality of subplans if partitioning of data is determined to be potentially useful; and
building a plan for execution of the query based, at least in part, upon selecting subplans having favorable execution costs. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. In a database system, a method for optimization of a query requesting data from a database, the method comprising:
-
constructing a tree of relational operators based on the query, each relational operator for performing a given relational operation;
determining whether dividing data processed by a particular relational operator in said tree is useful for executing a relational operation in parallel;
if partitioning of a particular relational operator is determined to be useful, creating a revised tree by adding operators to said tree for dividing data processed by the particular relational operator and executing the particular relational operator in parallel over the divided data; and
generating a plan for execution of the query based on said revised tree. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
-
-
27. A database system for dynamically partitioning data during query processing, the system comprising:
-
a module for generating a plurality of plan fragments for obtaining data requested by a query from database tables of the database system;
a partitioning module for creating additional plan fragments by adding operators for dynamically partitioning data and processing the partitioned data in parallel to at least some of said plan fragments; and
a module for constructing a final plan for execution of the query based, at least in part, upon selecting plan fragments having operators for dynamically partitioning data and processing the partitioned data in parallel when dynamically partitioning data is determined to be advantageous. - View Dependent Claims (28, 29, 30, 31, 32, 33, 34, 35, 36)
-
-
37. In a database system comprising a database storing data in database tables, a method for improving query performance comprising:
-
receiving a query specifying a join of two or more database tables;
as data is retrieved from the database during processing of the query, partitioning said data into separate memory buffers; and
processing said query in parallel by concurrently processing said data in said memory buffers. - View Dependent Claims (38, 39, 40, 41, 42, 43, 44, 45, 46, 47)
-
Specification