1. A computer implemented method of interrogating a database comprising a plurality of tables, said method comprising the steps of: defining a set of anticipated database queries directed to one or more of said tables in the database, the database executing in the data processing system; generating a base query directed only to tables common to all of said anticipated database queries; for each anticipated database query, generating a subquery module directed to tables not covered by said base query and required by a respective anticipated database query, wherein the subquery module includes logic to create a subquery and logic to create a filter; receiving a request for information from said database; selecting a subquery module directed to tables not covered by said base query and required by a respective anticipated database query; adding an output of said selected subquery module to said base query to form a refined query, wherein the logic included in the subquery module further includes logic for not creating the subquery when a table used in the filter already exists in the refined query; submitting said refined query to said database; and responsive to submitting said refined query, receiving data from said database.