Database query code generation and optimization based on the cost of alternate access methods
First Claim
1. In a digital computer system employing a data base system for accessing stored data, means for transforming logical query data representing a query to be performed by said data base system into query code executable by said data base system comprising:
- (1) implementation-dependent analysis means for receiving certain said logical query data representing a said query and responding thereto by providing a cost data specifying the cost of an operation in said data base system specified by certain said logical query data and implementation-dependent portions of said query code required to perform said specified operation; and
(2) implementation-independent transformation means for modifying said logical query data in response to said cost data and producing said executable query code containing said implementation-dependent portions from said analysis means.
1 Assignment
0 Petitions
Accused Products
Abstract
An optimizer-code generator for use in a data base system. The optimizer-code generator employs a component called a scan analyzer for performing implementation-dependent analysis and providing implementation-dependent query code. The optimizer-code generator receives a query in logical tree form. It first optimizes the logical tree. In so doing, it provides information from the logical tree to the scan analyzer, which specifies what methods are available for accessing information required for the query and what each of the available methods costs. The optimizer-code generator uses the cost information in its optimization of the logical tree and specifies the access methods to be used in the logical tree. The code generator then uses the logical tree to generate query code. In so doing, it provides the specifications of the access methods to the scan analyzer, which returns query code for the access method. The code generator then incorporates the query code for the access method in the query code which it generates from the logical tree.
-
Citations
11 Claims
-
1. In a digital computer system employing a data base system for accessing stored data, means for transforming logical query data representing a query to be performed by said data base system into query code executable by said data base system comprising:
-
(1) implementation-dependent analysis means for receiving certain said logical query data representing a said query and responding thereto by providing a cost data specifying the cost of an operation in said data base system specified by certain said logical query data and implementation-dependent portions of said query code required to perform said specified operation; and (2) implementation-independent transformation means for modifying said logical query data in response to said cost data and producing said executable query code containing said implementation-dependent portions from said analysis means. - View Dependent Claims (2, 3)
-
-
4. In a digital computer system employing a data base system for accessing stored data by means of a plurality of access methods, improved query code generation means for generating query code executable by said data base system from logical query data representing a query wherein the improvement comprises:
-
(1) preliminary information in said logical query data specifying certain of said plurality of access methods as are required for said query; and (2) a scan analyzer for receiving said preliminary information and providing therefor said executable query code for said access methods as are required for said query. - View Dependent Claims (5, 6)
-
-
7. In a digital computer system employing a data base system for accessing stored data by means of a plurality of access methods, improved means for optimizing logical query data corresponding to queries comprising:
-
(1) a scan analyzer for determining the cost of any certain of said plurality of access methods and returning cost data specifying said cost; and (2) means responsive to said cost data for altering said logical query data for a given said query to employ said access methods having the lowest said cost for the given said query. - View Dependent Claims (8, 9)
-
-
10. In a data base system implemented in a digital computer system, the method of transforming logical query data representing a query to be performed by said data base system into logical query data representing a more efficient form of said query comprising the steps of:
-
(1) providing said logical query data to a scan analyzer for determining the cost of employing certain ones of a plurality of access methods; (2) comparing the relative cost of said certain access methods; and (3) selecting the most cost-efficient one of said certain access methods and altering said logical query data to employ said selectled one.
-
-
11. In a data base system implemented in a digital computer system, the method of transforming logical query data into query code executable by said data base system comprising the steps of:
-
(1) providing preliminary information concerning one of a plurality of access methods from said logical query data to a scan analyzer corresponding to said access method; (2) receiving portions of said executable query code specific to said access method specified in said preliminary information from said scan analyzer; and (3) generating, from said logical query data, said executable query code incorporating said portions of said executable query code specific to said access method.
-
Specification