Method and apparatus for optimizing queries across heterogeneous databases
First Claim
1. A heterogeneous database system including plural databases, one database acting as a system manager (hereafter "system manager") which performs functions to provide a transparent user database encompassing both said one database and other databases, said system manager comprising:
- a memory for storing (i) a database management procedure, (ii) a catalogue of database functions that are supported by said plural databases, including but not limited to join methods, aggregate functions and search algorithms, and (iii) a query optimizer procedure; and
a processor coupled to said memory and responsive to a user query which requires execution of a database function with respect to data stored at a first database, for executing said query optimizer procedure, said processor, under control of said query optimizer procedure, employing entries from said catalogue relating to database functions supported by both said first database and a second database, to establish query plans for responding to said query, a first said query plan based upon an optimized execution thereof at said first database and a second said query plan based upon an optimized execution thereof at said second database, and for choosing one of said query plans in accordance with a determined criteria, to be executed by said database management procedure in response to said user query.
1 Assignment
0 Petitions
Accused Products
Abstract
A heterogeneous database system includes plural databases, one database acting as a system manager which performs functions to provide a transparent user interface that encompasses both the system manager database and other databases. The system manager includes a memory which stores (i) a database management procedure, (ii) a catalog of database functions that are supported by the plural databases, and (iii) a query optimizer procedure. A processor is responsive to a user query which requires data stored at a remote database, to execute the query optimizer procedure. The query optimizer procedure employs entries from the catalogue relating to database functions supported by both the system manager database and the remote database and establishes query plans for responding to the query. A first query plan is based upon execution at the remote database and a second query plan is based upon execution at the system manager database. The query optimizer then chooses one of the query plans in accordance with a determined criteria and causes the selected plan to be executed.
129 Citations
18 Claims
-
1. A heterogeneous database system including plural databases, one database acting as a system manager (hereafter "system manager") which performs functions to provide a transparent user database encompassing both said one database and other databases, said system manager comprising:
-
a memory for storing (i) a database management procedure, (ii) a catalogue of database functions that are supported by said plural databases, including but not limited to join methods, aggregate functions and search algorithms, and (iii) a query optimizer procedure; and a processor coupled to said memory and responsive to a user query which requires execution of a database function with respect to data stored at a first database, for executing said query optimizer procedure, said processor, under control of said query optimizer procedure, employing entries from said catalogue relating to database functions supported by both said first database and a second database, to establish query plans for responding to said query, a first said query plan based upon an optimized execution thereof at said first database and a second said query plan based upon an optimized execution thereof at said second database, and for choosing one of said query plans in accordance with a determined criteria, to be executed by said database management procedure in response to said user query. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A memory media including software procedures to provide transparent access to plural heterogeneous databases, one of said databases acting as a system manager (hereafter "system manager") which performs functions of a transparent user database encompassing both said one of said databases and other databases, said memory media comprising:
-
a) means for causing said system manager to store (i) a database management procedure, (ii) a catalogue of database functions that are supported by said plural databases, including but not limited to join methods, aggregate functions and search algorithms, and (iii) a query optimizer procedure; and b) means for controlling a processor in said system manager to be responsive to a user query which requires execution of a database function with respect to data stored at a first database, to execute said query optimizer procedure, said query optimizer procedure employing entries from said catalogue relating to database functions supported by both said system manager and said first database, by establishing query plans for responding to said query, a first said query plan based upon an optimized execution thereof at said first database and a second said query plan based upon an optimized execution thereof at said system manager, and for choosing one of said query plans in accordance with a determined criteria, to be executed by said database management procedure in response to said user query. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A method for choosing an optimized query plan for accessing data in a heterogeneous database system, one database acting as a system manager (hereafter "system manager") which performs functions of a transparent user database, said method implemented by said system manager and comprising the steps of:
-
a) storing (i) a database management procedure, (ii) a catalogue of database functions that are supported by said plural databases, including but not limited to join methods, aggregate functions and search algorithms, and (iii) a query optimizer procedure; b) responding to a user query which requires execution of a database function with respect to data stored at a first database, by executing said query optimizer procedure, said query optimizer procedure employing entries from said catalogue relating to database functions supported by both said first database and a second database, and establishing query plans for responding to said query, a first said query plan based upon an optimized execution thereof at said first database and a second said query plan based upon an optimized execution thereof at said second database; c) choosing one of said query plans in accordance with a determined criteria; and d) executing said database management procedure, using a query plan chosen in step c) in response to said user query. - View Dependent Claims (15, 16, 17, 18)
-
Specification