Method and apparatus for re-evaluating execution strategy for a database query
First Claim
1. A method for executing a database query in a computer system, comprising the steps of:
- invoking a database query;
automatically assigning a primary query execution strategy to the database query;
executing said database query according to said primary execution strategy;
automatically monitoring execution of said primary execution strategy while performing said execution step to detect a condition indicating that said primary execution strategy is sub-optimal; and
responsive to detecting a condition indicating that said primary execution strategy is sub-optimal, automatically initiating an alternate execution strategy for executing said database query.
1 Assignment
0 Petitions
Accused Products
Abstract
A query facility for database queries saves and re-uses query execution strategies, and automatically detects that a strategy should be re-optimized as a result of changes to an indexed variable value. Preferably, the number of records evaluated and selected by the index value condition is dynamically monitored during execution, and an alternative query strategy is initiated when this number appears to be out of proportion to expectations. In an exemplary embodiment, an indexed search strategy is changed to a table scan strategy (or vice versa) as a result of a change to the number of records eliminated by the indexed value, although other examples are possible. Preferably, the query engine initiates an alternative search strategy and concurrently continues to execute the original search strategy as separate threads. Search results are obtained from whichever thread completes first.
-
Citations
20 Claims
-
1. A method for executing a database query in a computer system, comprising the steps of:
-
invoking a database query;
automatically assigning a primary query execution strategy to the database query;
executing said database query according to said primary execution strategy;
automatically monitoring execution of said primary execution strategy while performing said execution step to detect a condition indicating that said primary execution strategy is sub-optimal; and
responsive to detecting a condition indicating that said primary execution strategy is sub-optimal, automatically initiating an alternate execution strategy for executing said database query. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer program product for database query optimization comprising:
-
a plurality of computer executable instructions recorded on signal-bearing media, wherein said instructions, when executed by at least one computer system, cause the at least one computer system to perform the steps of;
receiving an invocation of a database query;
assigning a primary query execution strategy to the database query;
executing said database query according to said primary execution strategy;
monitoring execution of said primary execution strategy while performing said execution step to detect a condition indicating that said primary execution strategy is sub-optimal; and
responsive to detecting a condition indicating that said primary execution strategy is sub-optimal, initiating an alternate execution strategy for executing said database query. - 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; and
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 and a query optimizer for generating execution strategies for execution logical queries against said database;
wherein said database management facility automatically assigns a primary execution strategy to an invoked database query, monitors execution of said primary execution strategy to detect a condition indicating that said primary execution strategy is sub-optimal, and initiates an alternate execution strategy responsive to detecting a condition indicating that said primary execution strategy is sub-optimal. - View Dependent Claims (20)
-
Specification