1. A method, in a data processing system, for optimizing a database definition of an existing database, the method comprising: receiving an optimization command that requests optimization of one or more database objects in the existing database, wherein the optimization command identifies an object type to be optimized and an object name of one or more database objects in the existing database to be optimized; querying a repository of usage metrics based on the object type to be optimized; receiving usage parameter values for the existing database from the repository of usage metrics; querying a knowledgebase based on the usage parameter values and the object type to be optimized to identify a decision tree within optimization logic of the knowledgebase that accepts the usage parameter values as input and processes the usage parameter values to determine database commands that can be executed to optimize the one or more database objects, wherein the optimization logic comprises a plurality of decision trees having decision nodes, chance nodes, and end nodes, wherein each end node identifies a command to optimize a given database object; executing the identified decision tree to generate a set of database commands based on the usage parameter values, wherein the set of database commands, when executed against a database definition of the existing database, optimize the one or more database objects of the existing database; and returning the set of optimization commands.