CPC G06F 16/24544 (2019.01) [G06F 11/3409 (2013.01); G06F 16/2255 (2019.01); G06F 16/24539 (2019.01)] | 20 Claims |
1. A system comprising:
a memory storing processor-executable program code; and
a processing unit to execute the processor-executable program code in order to cause the system to:
receive a query execution plan associated with a plurality of query execution pipelines, estimated execution costs and estimated intermediate result cardinalities;
determine one or more precedence relationships of the plurality of query execution pipelines;
determine a plurality of execution orders of the plurality of query execution pipelines based on the one or more precedence relationships;
for each of the plurality of execution orders, determine a memory size and lifetime of intermediate results of each pipeline based on the estimated execution costs and the estimated intermediate result cardinalities;
determine an execution order from the plurality of query execution orders based on the memory size and lifetime of intermediate results of each pipeline determined for each of the plurality of execution orders; and
provide the execution order of the plurality of query execution pipelines and the query execution plan to a query execution engine.
|