1. A method for predicting query execution time for concurrent and dynamic database workloads, comprising: receiving a plurality of database queries; decomposing each query into a sequence of query pipelines based on the query plan from a query optimizer, and predicting an execution time T i for a pipeline i determined as T i =V cpu,i R cpu,i +V disk,i R disk,j of each pipeline with a progress predictor for a progress chart of query pipelines, with visit V at the disk or the CPU respectively, and residence time R at the disk or the CPU, respectively; and modifying the database workload to satisfy a service level agreement with a user.