System-wide query optimization
First Claim
Patent Images
1. A system comprising:
- a first computing node operable to execute a database query on a first partition of a partitioned data set;
a second computing node operable to execute the database query on a second partition of the partitioned data set; and
one or more memories having stored thereon computer-readable instructions that, upon execution by a processor of the one or more computing nodes, cause the system at least to;
receive information indicative of a first estimated cost of executing a first set of instructions for executing the database query on the first computing node, the first set of instructions performing the database query in a manner determined by the first computing node;
receive information indicative of a second estimated cost of executing a second set of instructions for executing the database query on the second computing node, the second set of instructions performing the database query in a manner determined by the second computing node;
determine to use one of the first or second set of instructions for performing the database query on at least one of the first and second computing nodes by comparing the first and second estimated costs; and
execute the database query on the second computing node using the first set of instructions for performing the database query based at least in part on the comparing the first and second estimated costs.
1 Assignment
0 Petitions
Accused Products
Abstract
A locally optimized plan for executing a command using a sequence of steps can be determined for a single computing node. However, the locally optimized sequence of steps may not be optimized for a combined system comprising multiple computing nodes, any one of which may be tasked with executing the command. A plan that is optimized for the combined system may be determined by comparing the predicted cost of locally optimized plans for computing nodes in the combined system.
30 Citations
21 Claims
-
1. A system comprising:
-
a first computing node operable to execute a database query on a first partition of a partitioned data set; a second computing node operable to execute the database query on a second partition of the partitioned data set; and one or more memories having stored thereon computer-readable instructions that, upon execution by a processor of the one or more computing nodes, cause the system at least to; receive information indicative of a first estimated cost of executing a first set of instructions for executing the database query on the first computing node, the first set of instructions performing the database query in a manner determined by the first computing node; receive information indicative of a second estimated cost of executing a second set of instructions for executing the database query on the second computing node, the second set of instructions performing the database query in a manner determined by the second computing node; determine to use one of the first or second set of instructions for performing the database query on at least one of the first and second computing nodes by comparing the first and second estimated costs; and execute the database query on the second computing node using the first set of instructions for performing the database query based at least in part on the comparing the first and second estimated costs. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A non-transitory computer-readable storage medium having stored thereon computer instructions that, upon execution by a computing device, cause the computing device to at least:
-
receive an estimate of a first cost of performing a query, the first cost comprising a determination of an estimated cost of performing a first set of instructions in a first computing node; estimate a second cost of performing the query, the second estimated cost comprising a determination of the estimated cost of performing a second set of instructions on a second computing node; compare the first cost with the second cost after adjusting for relative characteristics of the first and second computing nodes and determine that the first set of instructions is preferable for performing the query on the first and second computing nodes; and execute the query on the second computing node using the first set of instructions. - View Dependent Claims (8, 9)
-
-
10. A method for executing a database query comprising:
-
receiving information indicative of a first estimated cost of executing a first set of instructions for executing the database query on a first computing node, the first set of instructions performing the database query in a manner determined by the first computing node; receiving information indicative of a second estimated cost of executing a second set of instructions for executing the database query on a second computing node, the second set of instructions performing the database query in a manner determined by the second computing node; determining whether to use the first or second set of instructions for performing the database query on at least one of the first and second computing node by comparing the first and second estimated costs; and executing the database query on the second computing node using the first set of instructions, based at least in part on the determining. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
Specification