Testing efficiency and stability of a database query engine
First Claim
1. A method in a database management system (DBMS), comprising:
- receiving a query;
generating a plurality of query execution plans for the query, wherein estimated costs corresponding to each of the plurality of execution plans are determined by a query optimizer prior to (i) an execution of the query using the plurality of query execution plans and (ii) a selection of a query execution plan by the query optimizer;
executing the query using each of the plurality of query execution plans;
determining performance of each of the query execution plans based on the execution of the query using the query execution plans;
classifying each of the query execution plans based on the performance and the corresponding estimated costs; and
computing an optimizer efficiency index based on the classifying of the query execution plans, wherein the efficiency index is utilized to determine efficiency of the query optimizer.
1 Assignment
0 Petitions
Accused Products
Abstract
Systems, methods and computer program products for testing the stability and efficiency of a database query engine are described herein. In an embodiment, all possible query execution plans considered by a query optimizer are retained in the form of abstract plans (APs). Each AP is then subsequently supplied with a query to test for stack traces and incorrect results that may occur during the execution of the query. An embodiment includes determining an optimizer efficiency index (OEI) by comparing each AP with a query execution plan chosen by the query optimizer and classifying the APs into various performance buckets based on the degree of improvement or degradation in performance with respect to the query execution plan chosen by the query optimizer. In another embodiment to determine the optimizer efficiency index, APs are ranked based on estimated cost and classified into a plurality of categories based on query optimizer estimates and actual execution behavior.
-
Citations
11 Claims
-
1. A method in a database management system (DBMS), comprising:
-
receiving a query; generating a plurality of query execution plans for the query, wherein estimated costs corresponding to each of the plurality of execution plans are determined by a query optimizer prior to (i) an execution of the query using the plurality of query execution plans and (ii) a selection of a query execution plan by the query optimizer; executing the query using each of the plurality of query execution plans; determining performance of each of the query execution plans based on the execution of the query using the query execution plans; classifying each of the query execution plans based on the performance and the corresponding estimated costs; and computing an optimizer efficiency index based on the classifying of the query execution plans, wherein the efficiency index is utilized to determine efficiency of the query optimizer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer program product including a non-transitory computer-readable storage medium having instructions stored thereon that, in response to execution by a computing device, causes the computing device to perform operations comprising:
-
receiving a query; generating a plurality of query execution plans for the query, wherein estimated costs corresponding to each of the plurality of execution plans are determined by a query optimizer prior to (i) an execution of the query using the plurality of query execution plans and (ii) a selection of a query execution plan by the query optimizer; executing the query using each of the plurality of query execution plans; determining performance of each of the query execution plans based on the execution of the query using the query execution plans; classifying each of the query execution plans based on the performance and the corresponding estimated costs; and computing an optimizer efficiency index based on the classifying of the query execution plans, wherein the efficiency index is utilized to determine efficiency of the query optimizer.
-
Specification