Pushing joins across a union
First Claim
Patent Images
1. A computer-implemented method for selecting a join plan for a query containing a plurality of joins and a union block, the computer-implemented method comprising:
- selecting from among the plurality of joins a subset to consider for pushing across the union block;
identifying from among the selected joins N joins for which pushing the join across the union block is semantically correct;
proposing a join plan for all of the plurality of joins without any of the joins being pushed across the union block;
proposing 2N separate join plans for the plurality of joins, each of the 2N separate join plans comprising a unique combination of pushed joins and unpushed joins; and
selecting a join plan from among the proposed join plans;
wherein selecting from among the plurality of joins a subset to consider for pushing across the union block comprises;
determining that the number of joins in the plurality of joins is too great to propose a join plan for each of the possible alternatives of pushing one of the plurality of joins across the union block or not; and
in response, applying a set of heuristics to select fewer than all of the plurality of joins to consider for pushing across the union block.
1 Assignment
0 Petitions
Accused Products
Abstract
Selecting a join plan for a query containing a join and a union block includes determining whether to propose a join plan with the join pushed across the union block. A selection is made between a join plan in which the join is not pushed across the union block and any proposed join plan in which the join is pushed across the union block.
3 Citations
8 Claims
-
1. A computer-implemented method for selecting a join plan for a query containing a plurality of joins and a union block, the computer-implemented method comprising:
-
selecting from among the plurality of joins a subset to consider for pushing across the union block; identifying from among the selected joins N joins for which pushing the join across the union block is semantically correct; proposing a join plan for all of the plurality of joins without any of the joins being pushed across the union block; proposing 2N separate join plans for the plurality of joins, each of the 2N separate join plans comprising a unique combination of pushed joins and unpushed joins; and selecting a join plan from among the proposed join plans; wherein selecting from among the plurality of joins a subset to consider for pushing across the union block comprises; determining that the number of joins in the plurality of joins is too great to propose a join plan for each of the possible alternatives of pushing one of the plurality of joins across the union block or not; and in response, applying a set of heuristics to select fewer than all of the plurality of joins to consider for pushing across the union block. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
Specification