Claims
- 1. A program product having program code on a computer usable medium for retrieving data from a computerized database system capable of processing a query statement to identify data to be retrieved, the program product comprising program code for causing the following steps to occur:
- (a) during compile time:
- (i) determining an optimal sequential execution plan for the query statement, and
- (ii) determining an optimal parallel execution plan based on said optimal sequential execution plan, and based on available resource information; and
- (b) during run time:
- (i) determining, based on a value of at least one run time variable, whether to use said sequential execution plan without modification or a modification of said parallel execution plan as an optimal run time execution plan, and
- (ii) executing said query statement using said optimal run time execution plan.
- 2. The program product of claim 1, further comprising program code for causing the step of modifying said parallel execution strategy based on the value of at least one run time variable.
- 3. The program product of claim 1, further comprising program code for causing the step of determining units of parallelism during compile time.
- 4. The program product of claim 3, further comprising program code for causing the steps of:
- determining whether a host variable is present in the query;
- when a host variable is present in the query, determining a degree of parallelism for each of said units of parallelism during run time; and
- when a host variable is not present in the query, determining a preliminary degree of parallelism during compile time and a final degree of parallelism based on the preliminary degree of parallelism during run time.
- 5. The program product of claim 1 wherein the run time variables comprise a number of CPUs and an amount of available buffer space.
- 6. A program product having program code embodied within a computer usable medium for retrieving data from a computerized database system, the program product comprising:
- means for causing a first determination of an optimal sequential plan for executing a query statement;
- means for causing a second determination of whether the query statement contains a host variable;
- means for causing a third determination of one or more units of parallelism for the query statement based on the sequential plan;
- means for causing a fourth determination, at compile time, of a preliminary degree of parallelism for each unit of parallelism based on static run time environment information available during compile time; and
- means for causing a modification of the preliminary degree of parallelism based on values of run time variables.
Parent Case Info
This is a continuation of application Ser. No. 08/486,087, filed Jun. 7, 1995 now abandoned which is a divisional of copending application Ser. No. 08/201,822 filed on Feb. 25, 1994.
US Referenced Citations (7)
Non-Patent Literature Citations (2)
Entry |
Hong et al, "Optimization of parallel query execution plans in SPRS", PROC of the First International Conference on Parallel and Distributed Information Systems, Dec. 4-6 1991, IEEE Computer Society Press 199, p. 218-225. |
Graefe, "Volcano--an extensible and parallel query evaluation system", IEEE Transactions on Knowledge and Data Engineering, vol. 6, Iss: 1, p. 120-135, Feb. 1994. |
Divisions (1)
|
Number |
Date |
Country |
Parent |
201822 |
Feb 1994 |
|
Continuations (1)
|
Number |
Date |
Country |
Parent |
486087 |
Jun 1995 |
|