Method and apparatus for optimizing execution of database queries containing user-defined functions
First Claim
1. A method for database query optimization in a computer system, comprising the steps of:
- maintaining historical execution data with respect to each of a plurality of user-defined functions;
receiving a database query having a plurality of logical conditions, said database query including at least one of said user-defined functions in at least one of said logical conditions;
using said historical execution data to predict an optimal ordering of evaluation of said plurality of logical conditions; and
evaluating said database query in accordance with said predicted optimal ordering of evaluation of said plurality of logical conditions.
1 Assignment
0 Petitions
Accused Products
Abstract
A query engine (or optimizer) which supports database queries having user-defined functions maintains historical execution data with respect to each of multiple user-defined functions. The historical execution data is dynamically updated based on query execution performance. When executing a query having user-defined functions, the query engine uses the historical execution data to predict an optimal evaluation ordering for the query conditions and, preferably, to dynamically adjust the evaluation order when appropriate. Preferably, the historical execution data includes historical execution time of the user-defined function and proportion of evaluated records which satisfied the query parameters.
-
Citations
22 Claims
-
1. A method for database query optimization in a computer system, comprising the steps of:
-
maintaining historical execution data with respect to each of a plurality of user-defined functions;
receiving a database query having a plurality of logical conditions, said database query including at least one of said user-defined functions in at least one of said logical conditions;
using said historical execution data to predict an optimal ordering of evaluation of said plurality of logical conditions; and
evaluating said database query in accordance with said predicted optimal ordering of evaluation of said plurality of logical conditions. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer program product for database query optimization comprising:
-
a plurality of processor executable instructions recorded on signal-bearing media, wherein said instructions, when executed by at least one processor of at least one computer system, cause the at least one computer system to perform the steps of;
maintaining historical execution data with respect to each of a plurality of user-defined functions;
receiving a database query having a plurality of logical conditions, said database query including at least one of said user-defined functions in at least one of said logical conditions;
using said historical execution data to predict an optimal ordering of evaluation of said plurality of logical conditions; and
evaluating said database query in accordance with said predicted optimal ordering of evaluation of said plurality of logical conditions. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A computer system, comprising:
-
at least one processor;
a data storage for storing a database;
a database management facility embodied as a plurality of instructions executable on said at least one processor, said database management facility including a query engine which executes logical queries against said database, each logical query containing a respective set of logical conditions, at least some of said respective sets of logical conditions containing one or more logical conditions including respective one or more user-defined functions;
wherein said database management facility automatically predicts a respective optimal ordering of evaluation of each a plurality of said respective sets containing one or more logical conditions including respective one or more user-defined functions using respective historical execution data for each said user-defined function, and automatically executes the query containing the respective set according to the predicted optimal ordering of evaluation. - View Dependent Claims (20, 21, 22)
-
Specification