Dynamic partition enhanced joining
First Claim
Patent Images
1. A method of performing a database query including a join on an equality condition between one or more columns in a first table and one or more columns in a second table, each of the first table and the second table including zero or more rows, the method including:
- defining two or more first-table partitions, where each row in the first table appears in exactly one first-table partition;
defining two or more second-table partitions, each second-table partition corresponding to a first-table partition, and where each row in the second table appears in exactly one second-table partition;
where defining the two or more first-table partitions and the two or more second-table partitions includes;
acquiring first-table-demographic data for the one or more columns in the first table, the demographic data including zero or more first-table-column values;
acquiring second-table-demographic data for the one or more columns in the second table, the demographic data including zero or more second-table-column values;
creating a qualifying set by joining the first table demographic data and the second table demographic data on the equality condition;
partitioning the first table into the two or more first-table partitions, using the qualifying set; and
partitioning the second table into the two or more second-table partitions, using the qualifying set; and
for one or more corresponding first-table partitions and second-table partitions;
performing the join on the first-table partition and the second-table partition; and
storing the result; and
merging the results.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods, computer programs, and database systems for performing a database query that includes a join on an equality condition are disclosed. The method includes defining two or more first-table partitions and two or more corresponding second-table partitions. The method includes performing the join on the first-table partition and the second-table partition, storing the result, and merging the results.
21 Citations
36 Claims
-
1. A method of performing a database query including a join on an equality condition between one or more columns in a first table and one or more columns in a second table, each of the first table and the second table including zero or more rows, the method including:
-
defining two or more first-table partitions, where each row in the first table appears in exactly one first-table partition; defining two or more second-table partitions, each second-table partition corresponding to a first-table partition, and where each row in the second table appears in exactly one second-table partition; where defining the two or more first-table partitions and the two or more second-table partitions includes; acquiring first-table-demographic data for the one or more columns in the first table, the demographic data including zero or more first-table-column values; acquiring second-table-demographic data for the one or more columns in the second table, the demographic data including zero or more second-table-column values; creating a qualifying set by joining the first table demographic data and the second table demographic data on the equality condition; partitioning the first table into the two or more first-table partitions, using the qualifying set; and partitioning the second table into the two or more second-table partitions, using the qualifying set; and for one or more corresponding first-table partitions and second-table partitions; performing the join on the first-table partition and the second-table partition; and storing the result; and merging the results. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A computer program, stored on a tangible storage medium, for use in performing a database query including a join on an equality condition between one or more columns in a first table and one or more columns in a second table, each of the first table and the second table including zero or more rows, the computer program including executable instructions that cause a computer to:
-
define two or more first-table partitions, where each row in the first table appears in exactly one first-table partition; define two or more second-table partitions, each second-table partition corresponding to a first-table partition, and where each row in the second table appears in exactly one second-table partition; where the executable instructions that cause the computer to define the two or more first-table partitions and the two or more second-table partitions further cause the computer to; acquire first-table-demographic data for the one or more columns in the first table, the demographic data including zero or more first-table-column values; acquire second-table-demographic data for the one or more columns in the second table, the demographic data including zero or more second-table-column values; create a qualifying set by joining the first table demographic data and the second table demographic data on the equality condition; and partition the first table into the two or more first-table partitions, using the qualifying set; partition the second table into the two or more second-table partitions, using the qualifying set; and for one or more corresponding first-table partitions and second-table partitions; perform the join on the first-table partition and the second-table partition; and store a result; and merge the results. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A database system including:
-
a massively parallel processing system including; one or more nodes; a plurality of CPUs, each of the one or more nodes providing access to one or more CPUs; a plurality of data storage facilities each of the one or more CPUs providing access to one or more data storage facilities; a process for execution on the massively parallel processing system for performing a database query including a join on an equality condition between one or more columns in a first table and one or more columns in a second table, each of the first table and the second table including zero or more rows, the process including; defining two or more first-table partitions, where each row in the first table appears in exactly one first-table partition; defining two or more second-table partitions, each second-table partition corresponding to a first-table partition, and where each row in the second table appears in exactly one second-table partition; where defining the two or more first-table partitions and the two or more second-table partitions includes; acquiring first-table-demographic data for the one or more columns in the first table, the demographic data including zero or more first-table-column values; acquiring second-table-demographic data for the one or more columns in the second table, the demographic data including zero or more second-table-column values; creating a qualifying set by joining the first table demographic data and the second table demographic data on the equality condition; partitioning the first table into the two or more first-table partitions, using the qualifying set; and partitioning the second table into the two or more second-table partitions, using the qualifying set; and for one or more corresponding first-table partitions and second-table partitions; performing the join on the first-table partition and the second-table partition; storing the result; and merging the results. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
-
Specification