1. A method for generating a set of one or more materialized query table (MQT) candidates for a workload, wherein the method comprises: receiving a workload, wherein the workload comprises a set of one or more queries; generating one or more best matching MQTs (BMQTs) based on one or more query blocks of the one or more queries by removing syntax that is not qualified for a MQT re-write; determining one or more frequently used multi-joins in the workload; using the one or more BMQTs and the one or more frequently used multi-joins to generate a set of one or more workload MQTs (WMQTs); and grouping one or more WMQTs and one or more BMQTs into one or more groups to merge into a set of a smaller number of MQTs and to cover the workload.