Testing Efficiency and Stability of a Database Query Engine
First Claim
1. A method of testing a query engine in a database management system (DBMS), comprising:
- (1) retaining all query execution plans considered by a query optimizer;
(2) executing a query using each of said query execution plans;
(3) determining performance of said query execution plans based on said execution;
(4) classifying said query execution plans based on said performance; and
(5) determining efficiency of said query optimizer by computing an optimizer efficiency index (OEI) based on said classification.
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.
49 Citations
20 Claims
-
1. A method of testing a query engine in a database management system (DBMS), comprising:
-
(1) retaining all query execution plans considered by a query optimizer; (2) executing a query using each of said query execution plans; (3) determining performance of said query execution plans based on said execution; (4) classifying said query execution plans based on said performance; and (5) determining efficiency of said query optimizer by computing an optimizer efficiency index (OEI) based on said classification. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A system for testing a query engine in a database management system (DBMS), comprising:
-
a query optimizer configured to retain all query execution plans considered by said query optimizer; an execution engine configured to execute a query using said query execution plans; and a testing engine configured to determine performance of said query execution plans based on said execution. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A computer program product having control logic stored therein, said control logic enabling a processor to test a query engine in a database management system, said control logic comprising:
-
first computer readable program code means for enabling a processor to retain a plurality of query execution plans; second computer readable program code means for enabling a processor to execute a query using said query execution plans; third computer readable program code means for enabling a processor to determine performance of said query execution plans; fourth computer readable program code means for enabling a processor to classify said query execution plans based on said performance; and fifth computer readable program code means for enabling a processor to determine at least an efficiency of said query optimizer by computing an optimizer efficiency index (OEI) based on said classification.
-
Specification