Claims Analysis
Total Claims: 81
Claim 1
Independent Claim
172 words
A method for planning a database query, comprising: receiving a star/join query joining a fact table with multiple dimension tables, said fact table including a plurality of rows each row identified by a row identification code (RID); forming a first query plan for access of each dimension table to identify resultant rows of each dimension table; forming a second query plan for access of the fact table, comprising the steps of: for the resultant rows of each dimension table, planning a fact table index scan over join columns of that dimension table to produce a set of resultant RIDs, said fact table having indices for join columns with each of the dimension tables; applying staged comparative RID filtering to each dimension table's set of resultant RIDs to produce a set of filtered RIDs; and planning a fetch of all fact table rows corresponding to the set of filtered RIDs to produce a distilled fact table; and forming a final query plan comprising planning execution of the query using the distilled fact table.
Claim 2
Independent Claim
172 words
A method for planning a database query, comprising: receiving a star/join query joining a fact table with multiple dimension tables, said fact table including a plurality of rows each row identified by a row identification code (RID); forming a first query plan for access of each dimension table to identify resultant rows of each dimension table; forming a second query plan for access of the fact table, comprising the steps of: for the resultant rows of each dimension table, planning a fact table index scan over join columns of that dimension table to produce a set of resultant RIDs, said fact table having indices for join columns with each of the dimension tables; applying staged comparative RID filtering to each dimension table's set of resultant RIDs to produce a set of filtered RIDs; and planning a fetch of all fact table rows corresponding to the set of filtered RIDs to produce a distilled fact table; and forming a final query plan comprising planning execution of the query using the distilled fact table.
Claim 3
Dependent Claim
21 words
The method of claim 1, further comprising: predicting an execution cost required to perform the first, second, and final query plans.
Claim 4
Dependent Claim
27 words
The method of claim 2, further comprising: determining whether the cost satisfies a predetermined criteria, and if so, carrying out the planned first, second, and final queries.
Claim 5
Dependent Claim
43 words
The method of claim 3, further comprising: predicting an execution cost to perform one or more alternate query plans; wherein the predetermined criteria comprises the cost of the first, second, and final query plans being less than each of the alternate query plans.
Claim 6
Dependent Claim
15 words
The method of claim 1, further comprising: executing the first, second, and final query plans.
Claim 7
Dependent Claim
39 words
The method of claim 1, the receiving step comprising: receiving a query; and analyzing the query to determine whether the query comprises a star/join query joining a fact table with multiple dimension tables, and if not, aborting further operations.
Claim 8
Dependent Claim
43 words
The method of claim 6, the analyzing step comprising: analyzing the query to determine whether the fact table lacks indices for join columns with any of the dimension tables, and if so excluding said dimension tables from the first and second query plans.
Claim 9
Independent Claim
45 words
The method of claims 6, the analyzing step comprising: analyzing the query to determine whether the join between any dimension table and the fact table reduces cardinality of the fact table, and if not, excluding said dimension tables from the first and second query plans.
Claim 10
Dependent Claim
42 words
The method of claim 1, further comprising: analyzing the query to determine whether the fact table includes indices for join columns with each of the dimension tables, and if not, supplementing the second query plan to include planning generation of said indices.
Claim 11
Dependent Claim
55 words
The method of claim 1, the receiving further comprising: identifying within the star/join query a snowflake join comprising a join of a first one of the dimension tables with another table that is neither the fact table nor one of the dimension tables; and the forming of the first query plan including the snowflake join.
Claim 12
Dependent Claim
28 words
The method of claim 10, the forming of the first query plan only including the snowflake join if the snowflake join reduces cardinality of the first dimension table.
Claim 13
Dependent Claim
17 words
The method of claim 1, the first query plan being constructed to produce distinct join column values.
Claim 14
Dependent Claim
20 words
The method of claim 1, the first query plan suppressing columns of the dimension tables other than the join columns.
Claim 15
Dependent Claim
56 words
The method of claim 1, the fact table index scan of each dimension table comprising a nested loop join operation performed upon an inner table and an outer table, the outer table comprising the plan for executing query of the dimension table, the inner table comprising an index over one or more join columns of table.
Claim 16
Dependent Claim
54 words
The method of claim 1, the forming of the second query plan further comprising: estimating a cardinality of each set of resultant RIDs of each dimension table join to the fact table index; and the applying of stage comparative ridge filtering being performed in order from least to greatest number of the estimated cardinality.
Claim 17
Independent Claim
147 words
A method for performing a database query, comprising: receiving a star/join query joining a fact table with multiple dimension tables, said fact table including a plurality of rows each row identified by a row identification code (RID); performing access of each dimension table according to the star/join query to identify resultant rows of each dimension table; and for the resultant rows of each dimension table, performing a fact table index scan over join columns of that dimension table to produce a set of resultant RIDs, said fact table having indices for join columns with each of the dimension tables; applying staged comparative RID filtering to each dimension table's set of resultant RIDs to produce a set of filtered RIDs; fetching all fact table rows corresponding to the set of filtered RIDs to produce a distilled fact table; and executing the star/join query using the distilled fact table.
Claim 18
Independent Claim
147 words
A method for performing a database query, comprising: receiving a star/join query joining a fact table with multiple dimension tables, said fact table including a plurality of rows each row identified by a row identification code (RID); performing access of each dimension table according to the star/join query to identify resultant rows of each dimension table; and for the resultant rows of each dimension table, performing a fact table index scan over join columns of that dimension table to produce a set of resultant RIDs, said fact table having indices for join columns with each of the dimension tables; applying staged comparative RID filtering to each dimension table's set of resultant RIDs to produce a set of filtered RIDs; fetching all fact table rows corresponding to the set of filtered RIDs to produce a distilled fact table; and executing the star/join query using the distilled fact table.
Claim 19
Dependent Claim
39 words
The method of claim 16, the receiving step comprising: receiving a query; and analyzing the query to determine whether the query comprises a star/join query joining a fact table with multiple dimension tables, and if not, aborting further operations.
Claim 20
Dependent Claim
50 words
The method of claim 17, the analyzing step comprising: analyzing the query to determine whether the fact table lacks indices for join columns with any of the dimension tables, and if so, excluding said dimension tables from the performing access, performing the fact table index scan, applying, and fetching steps.
Claim 21
Dependent Claim
42 words
The method of claim 16, further comprising: analyzing the query to determine whether the fact table includes indices for join columns with each of the dimension tables, and if not, supplementing the second query plan to include planning generation of said indices.
Claim 22
Dependent Claim
56 words
The method of claim 16, the receiving further comprising: identifying within the star/join query a snowflake join comprising, a join of a first one of the dimension tables with another table that is neither the fact table nor one of the dimension tables; and the performing access of each dimension table including performing each snowflake join.
Claim 23
Dependent Claim
28 words
The method of claim 20, the performing access of each dimension table only including the snowflake join if the snowflake join reduces cardinality of the first dimension table.
Claim 24
Dependent Claim
21 words
The method of claim 16, the access of each dimension table being executed so as to produce distinct join column values.
Claim 25
Dependent Claim
22 words
The method of claim 16, the access of each dimension table suppressing columns of the dimension tables other than the join columns.
Claim 26
Dependent Claim
58 words
The method of claim 16, the fact table index scan of each dimension table comprising a nested loop join operation performed upon an inner table and an outer table, the outer table comprising the plan for executing query of the dimension table, the inner table comprising an index over one or more join columns of the fact table.
Claim 27
Dependent Claim
41 words
The method of claim 16, the applying of staged comparative RID filtering employing a set of one or more dynamic bit vectors for each dimension table, the filtering being performed in order from smallest to largest of the dynamic bit vectors.
Claim 28
Dependent Claim
192 words
A signal-bearing medium tangibly embodying a program of machine-readable instructions executable by a digital processing apparatus to perform a method for planning a database query, said method comprising: receiving a star/join query joining a fact table with multiple dimension tables, said fact table including a plurality of rows each row identified by a row identification code (RID); forming a first query plan for access of each dimension table to identify resultant rows of each dimension table; forming a second query plan for access of the fact table, comprising the steps of: for the resultant rows of each dimension table, planning a fact table index scan over join columns of that dimension table to produce a set of resultant RIDs, said fact table having indices for join columns with each of the dimension tables; applying staged comparative RID filtering to each dimension table's set of resultant RIDs to produce a set of filtered RIDs; and planning a fetch of all fact table rows corresponding to the set of filtered RIDs to produce a distilled fact table; and forming a final query plan comprising planning execution of the query using the distilled fact table.
Claim 29
Dependent Claim
192 words
A signal-bearing medium tangibly embodying a program of machine-readable instructions executable by a digital processing apparatus to perform a method for planning a database query, said method comprising: receiving a star/join query joining a fact table with multiple dimension tables, said fact table including a plurality of rows each row identified by a row identification code (RID); forming a first query plan for access of each dimension table to identify resultant rows of each dimension table; forming a second query plan for access of the fact table, comprising the steps of: for the resultant rows of each dimension table, planning a fact table index scan over join columns of that dimension table to produce a set of resultant RIDs, said fact table having indices for join columns with each of the dimension tables; applying staged comparative RID filtering to each dimension table's set of resultant RIDs to produce a set of filtered RIDs; and planning a fetch of all fact table rows corresponding to the set of filtered RIDs to produce a distilled fact table; and forming a final query plan comprising planning execution of the query using the distilled fact table.
Claim 30
Dependent Claim
21 words
The medium of claim 26, further comprising: predicting an execution cost required to perform the first, second, and final query plans.
Claim 31
Dependent Claim
27 words
The medium of claim 27, further comprising: determining whether the cost satisfies a predetermined criteria, and if so, carrying out the planned first, second, and final queries.
Claim 32
Dependent Claim
43 words
The medium of claim 28, further comprising: predicting an execution cost to perform one or more alternate query plans; wherein the predetermined criteria comprises the cost of the first, second, and final query plans being less than each of the alternate query plans.
Claim 33
Dependent Claim
15 words
The medium of claim 26, further comprising: executing the first, second, and final query plans.
Claim 34
Dependent Claim
39 words
The medium of claim 26, the receiving step comprising: receiving a query; and analyzing the query to determine whether the query comprises a star/join query joining a fact table with multiple dimension tables, and if not, aborting further operations.
Claim 35
Dependent Claim
42 words
The medium of claim 31, the analyzing step comprising: analyzing the query to determine whether the fact table lacks indices for join columns with any of the dimension tables, and if excluding said dimension tables from the first and second query plans.
Claim 36
Independent Claim
45 words
The medium of claims 31, the analyzing step comprising: analyzing the query to determine whether the join between any dimension table and the fact table reduces cardinality of the fact table, and if not, excluding said dimension tables from the first and second query plans.
Claim 37
Dependent Claim
42 words
The medium of claim 26, further comprising: analyzing the query to determine whether the fact table includes indices for join columns with each of the dimension tables, and if not, supplementing the second query plan to include planning generation of said indices.
Claim 38
Dependent Claim
55 words
The medium of claim 26, the receiving further comprising: identifying within the star/join query a snowflake join comprising a join of a first one of the dimension tables with another table that is neither the fact table nor one of the dimension tables; and the forming of the first query plan including the snowflake join.
Claim 39
Dependent Claim
28 words
The medium of claim 35, the forming of the first query plan only including the snowflake join if the snowflake join reduces cardinality of the first dimension table.
Claim 40
Dependent Claim
17 words
The medium of claim 26, the first query plan being constructed to produce distinct join column values.
Claim 41
Dependent Claim
20 words
The medium of claim 26, the first query plan suppressing columns of the dimension tables other than the join columns.
Claim 42
Dependent Claim
58 words
The medium of claim 26, the fact table index scan of each dimension table comprising a nested loop join operation performed upon an inner table and an outer table, the outer table comprising the plan for executing query of the dimension table, the inner table comprising an index over one or more join columns of the fact table.
Claim 43
Dependent Claim
54 words
The medium of claim 26, the forming of the second query plan further comprising: estimating a cardinality of each set of resultant RIDs of each dimension table join to the fact table index; and the applying of stage comparative ridge filtering being performed in order from least to greatest number of the estimated cardinality.
Claim 44
Dependent Claim
163 words
A signal-bearing medium tangibly embodying a program of machine-readable instructions executable by a digital processing apparatus to perform a database query, said method comprising: receiving a star/join query joining a fact table with multiple dimension tables, said fact table including a plurality of rows each row identified by a row identification code (RID); performing access of each dimension table according to the star/join query to identify resultant rows of each dimension table; and for the resultant rows of each dimension table, performing a fact table index scan over join columns of that dimension table to produce a set of resultant RIDs, said fact table having indices for join columns with each of the dimension tables; applying staged comparative RID filtering to each dimension table's set of resultant RIDs to produce a set of filtered RIDs; fetching all fact table rows corresponding to the set of filtered RIDs to produce a distilled fact table; and executing the star/join query using the distilled fact table.
Claim 45
Dependent Claim
163 words
A signal-bearing medium tangibly embodying a program of machine-readable instructions executable by a digital processing apparatus to perform a database query, said method comprising: receiving a star/join query joining a fact table with multiple dimension tables, said fact table including a plurality of rows each row identified by a row identification code (RID); performing access of each dimension table according to the star/join query to identify resultant rows of each dimension table; and for the resultant rows of each dimension table, performing a fact table index scan over join columns of that dimension table to produce a set of resultant RIDs, said fact table having indices for join columns with each of the dimension tables; applying staged comparative RID filtering to each dimension table's set of resultant RIDs to produce a set of filtered RIDs; fetching all fact table rows corresponding to the set of filtered RIDs to produce a distilled fact table; and executing the star/join query using the distilled fact table.
Claim 46
Dependent Claim
39 words
The medium of claim 41, the receiving step comprising: receiving a query; and analyzing the query to determine whether the query comprises a star/join query joining a fact table with multiple dimension tables, and if not, aborting further operations.
Claim 47
Dependent Claim
50 words
The medium of claim 42, the analyzing step comprising: analyzing the query to determine whether the fact table lacks indices for join columns with any of the dimension tables, and if so excluding said dimension tables from the performing access, performing the fact table index scan, applying, and fetching steps.
Claim 48
Dependent Claim
42 words
The medium of claim 41, further comprising: analyzing the query to determine whether the fact table includes indices for join columns with each of the dimension tables, and if not, supplementing the second query plan to include planning generation of said indices.
Claim 49
Dependent Claim
56 words
The medium of claim 41, the receiving further comprising: identifying within the star/join query a snowflake join comprising a join of a first one of the dimension tables with another table that is neither the fact table nor one of the dimension tables; and the performing access of each dimension table including performing each snowflake join.
Claim 50
Dependent Claim
28 words
The medium of claim 45, the performing access of each dimension table only including the snowflake join if the snowflake join reduces cardinality of the first dimension table.
Claim 51
Dependent Claim
21 words
The medium of claim 41, the access of each dimension table being executed so as to produce distinct join column values.
Claim 52
Dependent Claim
22 words
The medium of claim 41, the access of each dimension table suppressing columns of the dimension tables other than the join columns.
Claim 53
Dependent Claim
58 words
The medium of claim 41, the fact table index scan of each dimension table comprising a nested loop join operation performed upon an inner table and an outer table, the outer table comprising the plan for executing query of the dimension table, the inner table comprising an index over one or more join columns of the fact table.
Claim 54
Dependent Claim
41 words
The medium of claim 41, the applying of staged comparative RID filtering employing a set of one or more dynamic bit vectors for each dimension table, the filtering being performed in order from smallest to largest of the dynamic bit vectors.
Claim 55
Dependent Claim
206 words
A digital data processing apparatus, comprising: a storage unit containing a program of machine-readable instructions; and a processing unit coupled to the storage unit and being programmed to perform steps to evaluate a query by executing the machine-readable instructions, said steps comprising: receiving a star/join query joining a fact table with multiple dimension tables, said fact table including a plurality of rows each row identified by a row identification code (RID); forming a first query plan for access of each dimension table to identify resultant rows of each dimension table; forming a second query plan for access of the fact table, comprising the steps of: for the resultant rows of each dimension table, planning a fact table index scan over join columns of that dimension table to produce a set of resultant RIDs, said fact table having indices for join columns with each of the dimension tables; applying staged comparative RID filtering to each dimension table's set of resultant RIDs to produce a set of filtered RIDs; and planning a fetch of all fact table rows corresponding to the set of filtered RIDs to produce a distilled fact table; and forming a final query plan comprising planning execution of the query using the distilled fact table.
Claim 56
Dependent Claim
206 words
A digital data processing apparatus, comprising: a storage unit containing a program of machine-readable instructions; and a processing unit coupled to the storage unit and being programmed to perform steps to evaluate a query by executing the machine-readable instructions, said steps comprising: receiving a star/join query joining a fact table with multiple dimension tables, said fact table including a plurality of rows each row identified by a row identification code (RID); forming a first query plan for access of each dimension table to identify resultant rows of each dimension table; forming a second query plan for access of the fact table, comprising the steps of: for the resultant rows of each dimension table, planning a fact table index scan over join columns of that dimension table to produce a set of resultant RIDs, said fact table having indices for join columns with each of the dimension tables; applying staged comparative RID filtering to each dimension table's set of resultant RIDs to produce a set of filtered RIDs; and planning a fetch of all fact table rows corresponding to the set of filtered RIDs to produce a distilled fact table; and forming a final query plan comprising planning execution of the query using the distilled fact table.
Claim 57
Dependent Claim
21 words
The apparatus of claim 51, further comprising: predicting an execution cost required to perform the first, second, and final query plans.
Claim 58
Dependent Claim
27 words
The apparatus of claim 52, further comprising: determining whether the cost satisfies a predetermined criteria, and if so, carrying out the planned first, second, and final queries.
Claim 59
Dependent Claim
43 words
The apparatus of claim 53, further comprising: predicting an execution cost to perform one or more alternate query plans; wherein the predetermined criteria comprises the cost of the first, second, and final query plans being less than each of the alternate query plans.
Claim 60
Dependent Claim
15 words
The apparatus of claim 51, further comprising: executing the first, second, and final query plans.
Claim 61
Dependent Claim
39 words
The apparatus of claim 51, the receiving step comprising: receiving a query; and analyzing the query to determine whether the query comprises a star/join query joining a fact table with multiple dimension tables, and if not, aborting further operations.
Claim 62
Dependent Claim
43 words
The apparatus of claim 56, the analyzing step comprising: analyzing the query to determine whether the fact table lacks indices for join columns with any of the dimension tables, and if so, excluding said dimension tables from the first and second query plans.
Claim 63
Independent Claim
45 words
The apparatus of claims 56, the analyzing step comprising: analyzing the query to determine whether the join between any dimension table and the fact table reduces cardinality of the fact table, and if not, excluding said dimension tables from the first and second query plans.
Claim 64
Dependent Claim
42 words
The apparatus of claim 51, further comprising: analyzing the query to determine whether the fact table includes indices for join columns with each of the dimension tables, and if not, supplementing the second query plan to include planning generation of said indices.
Claim 65
Dependent Claim
55 words
The apparatus of claim 51, the receiving further comprising: identifying within the star/join query a snowflake join comprising a join of a first one of the dimension tables with another table that is neither th. fact table nor one of the dimension tables; and the forming of the first query plan including the snowflake join.
Claim 66
Dependent Claim
28 words
The apparatus of claim 60, the forming of the first query plan only including the snowflake join if the snowflake join reduces cardinality of the first dimension table.
Claim 67
Dependent Claim
17 words
The apparatus of claim 52, the first query plan being constructed to produce distinct join column values.
Claim 68
Dependent Claim
20 words
The apparatus of claim 52, the first query plan suppressing columns of the dimension tables other than the join columns.
Claim 69
Dependent Claim
58 words
The apparatus of claim 52, the fact table index scan of each dimension table comprising a nested loop join operation performed upon an inner table and an outer table, the outer table comprising the plan for executing query of the dimension table, the inner table comprising an index over one or more join columns of the fact table.
Claim 70
Dependent Claim
54 words
The apparatus of claim 51, the forming of the second query plan further comprising: estimating a cardinality of each set of resultant RIDs of each dimension table join to the fact table index; and the applying of stage comparative ridge filtering being performed in order from least to greatest number of the estimated cardinality.
Claim 71
Dependent Claim
180 words
A digital data processing apparatus, comprising: a storage unit containing a program of machine-readable instructions; and a processing unit coupled to the storage unit and being programed to perform a database a query by executing the machine-readable instructions, said steps comprising: receiving a star/join query joining a fact table with multiple dimension tables, said fact table including a plurality of rows each row identified by a row identification code (RID); performing access of each dimension table according to the star/join query to identify resultant rows of each dimension table; and for the resultant rows of each dimension table, performing a fact table index scan over join columns of that dimension table to produce a set of resultant RIDs, said fact table having indices for join columns with each of the dimension tables; applying staged comparative RID filtering to each dimension table's set of resultant RIDs to produce a set of filtered RIDs; fetching all fact table rows corresponding to the set of filtered RIDs to produce a distilled fact table; and executing the star/join query using the distilled fact table.
Claim 72
Dependent Claim
180 words
A digital data processing apparatus, comprising: a storage unit containing a program of machine-readable instructions; and a processing unit coupled to the storage unit and being programed to perform a database a query by executing the machine-readable instructions, said steps comprising: receiving a star/join query joining a fact table with multiple dimension tables, said fact table including a plurality of rows each row identified by a row identification code (RID); performing access of each dimension table according to the star/join query to identify resultant rows of each dimension table; and for the resultant rows of each dimension table, performing a fact table index scan over join columns of that dimension table to produce a set of resultant RIDs, said fact table having indices for join columns with each of the dimension tables; applying staged comparative RID filtering to each dimension table's set of resultant RIDs to produce a set of filtered RIDs; fetching all fact table rows corresponding to the set of filtered RIDs to produce a distilled fact table; and executing the star/join query using the distilled fact table.
Claim 73
Dependent Claim
39 words
The apparatus of claim 66, the receiving step comprising: receiving a query; and analyzing the query to determine whether the query comprises a star/join query joining a fact table with multiple dimension tables, and if not, aborting further operations.
Claim 74
Dependent Claim
50 words
The apparatus of claim 67, the analyzing step comprising: analyzing the query to determine whether the fact table lacks indices for join columns with any of the dimension tables, and if so, excluding said dimension tables from the performing access, performing the fact table index scan, applying, and fetching steps.
Claim 75
Dependent Claim
42 words
The apparatus of claim 66, further comprising: analyzing the query to determine whether the fact table includes indices for join columns with each of the dimension tables, and if not, supplementing the second query plan to include planning generation of said indices.
Claim 76
Dependent Claim
56 words
The apparatus of claim 66, the receiving further comprising: identifying within the star/join query a snowflake join comprising a join of a first one of the dimension tables with another table that is neither the fact table nor one of the dimension tables; and the performing access of each dimension table including performing each snowflake join.
Claim 77
Dependent Claim
28 words
The apparatus of claim 70, the performing access of each dimension table only including the snowflake join if the snowflake join reduces cardinality of the first dimension table.
Claim 78
Dependent Claim
21 words
The apparatus of claim 66, the access of each dimension table being executed so as to produce distinct join column values.
Claim 79
Dependent Claim
22 words
The apparatus of claim 66, the access of each dimension table suppressing columns of the dimension tables other than the join columns.
Claim 80
Dependent Claim
58 words
The apparatus of claim 66, the fact table index scan of each dimension table comprising a nested loop join operation performed upon an inner table and an outer table, the outer table comprising the plan for executing query of the dimension table, the inner table comprising an index over one or more join columns of the fact table.
Claim 81
Dependent Claim
41 words
The apparatus of claim 66, the applying of staged comparative RID filtering employing a set of one or more dynamic bit vectors for each dimension table, the filtering being performed in order from smallest to largest of the dynamic bit vectors.