SPLITTING OF A JOIN OPERATION TO ALLOW PARALLELIZATION
First Claim
Patent Images
1. A method for optimizing a database query, comprising:
- accessing a fact table and a plurality of dimension tables referenced by the database query;
creating a preliminary query plan based on the database query;
detecting that the database query involves a star join or snowflake join operation using the fact table and the plurality of dimension tables;
in response to detecting that the database query involves a star join or snowflake join operation;
splitting a join operator in the preliminary query plan into a build operator and a probe operator;
placing the probe operator in a final query plan in a same place as the join operator in the preliminary query plan; and
placing the build operator beneath the probe operator in the final query plan.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method for processing a database query is described. In response to detection that a database query involves a star or snowflake join operation, a join operator in a preliminary query plan can be split into a build operator and a probe operator. The probe operator can be placed in a final query plan in the same place as the join operator in the preliminary query plan, while the build operator can be placed beneath the probe operator in the final query plan, between an exchange operator and the exchange operator'"'"'s child from the preliminary query plan.
42 Citations
20 Claims
-
1. A method for optimizing a database query, comprising:
-
accessing a fact table and a plurality of dimension tables referenced by the database query; creating a preliminary query plan based on the database query; detecting that the database query involves a star join or snowflake join operation using the fact table and the plurality of dimension tables; in response to detecting that the database query involves a star join or snowflake join operation; splitting a join operator in the preliminary query plan into a build operator and a probe operator; placing the probe operator in a final query plan in a same place as the join operator in the preliminary query plan; and placing the build operator beneath the probe operator in the final query plan. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system comprising:
-
at least one processor; a parser configured to parse a database query; a normalizer configured to normalize the parsed database query; an optimizer configured to create a preliminary query plan for the database query; a query generation and execution component executable by the at least one processor and configured to; detect that the database query involves a star or snowflake join operation using a determined fact table and a plurality of dimension tables referenced by the database query; in response to detection that the database query involves a star or snowflake join operation; split a join operator in the preliminary query plan into a build operator and a probe operator; place the probe operator in a final query plan in the same place as the join operator in the preliminary query plan; and place the build operator beneath the probe operator in the final query plan, between an exchange operator and the exchange operator'"'"'s child from the preliminary query plan. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A non-transitory machine-readable storage medium comprising instructions, which when implemented by one or more machines, cause the one or more machines to perform operations comprising:
-
accessing a fact table and a plurality of dimension tables referenced by the database query; creating a preliminary query plan based on the database query; detecting that the database query involves a star or snowflake join operation using the determined fact table and plurality of dimension tables; in response to detection that the database query involves a star or snowflake join operation; splitting a join operator in the preliminary query plan into a build operator and a probe operator; placing the probe operator in a final query plan in the same place as the join operator in the preliminary query plan; and placing the build operator beneath the probe operator in the final query plan. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification