主权项 |
1. A system for predicting query execution time in a database system, comprising:
a processor, a cost model determination device for determining a cost model of a database query optimizer for the database system, the cost model for modeling costs of queries applied to the database system, wherein the optimizer estimates a cost of each operator as a vector of cost units c=(Cs; Cr; Ct; Ci; Co)T|, wherein cs: seq_page_cost, I/O cost to sequentially scan a page; cr: random_page_cost, I/O cost to randomly access a page; ct: cpu_tuple_cost, CPU cost to process a tuple; ci: cpu_index_tuple_cost, CPU cost to process a tuple via index access; or co: cpu_operator_cost, CPU cost to perform an operation,and where a cost CO of an operator O in a query plan is represented as a linear combination as:
CO=nTc=ns·cs+nr·cr+nt·ct+ni·ci+no·co.; a profiling device for determining a group of profiling queries for profiling input/output cost units and processor cost units relating to the database system, and for profiling the input/output cost units and the processor cost units using one or more of the profiling queries in the group to output profiled input/output cost units and profiled processor cost units; a calibrating device for calibrating cost units in the cost model responsive to the profiled input/output cost units and the profiled processor cost units to output calibrated cost units; a sampling re-estimator for sampling and re-estimating a cardinality estimation of a final query plan to output an updated cardinality estimation; and a predictor for applying the calibrated cost units and the updated cardinality estimation in the cost model to generate a prediction of an execution time of a given query. |