1. A method for determining a distribution of tables from a database among a cluster of nodes coupled to a database management system (DBMS), the DBMS managing the database, nodes of the cluster configured to store the tables and evaluate queries on the tables from the database, comprising: selecting particular tables accessed by a workload set, said workload set comprising a set of queries, wherein said particular tables are used in one or more join operations of two or more queries of said workload set; determining a plurality of data placement schemes, each data placement scheme of said plurality of data placement schemes being a scheme for storing said particular tables on one or more nodes of the cluster; generating a plurality of query execution costs, wherein generating the plurality of query execution costs comprises, for each data placement scheme of said plurality of data placement schemes, estimating a query execution cost of said workload set using said each data placement scheme; selecting a certain data placement scheme from the plurality of data placement schemes based on the plurality of query execution costs for said workload set; storing the particular tables on the one or more nodes of the cluster according to the certain data placement scheme; after storing the particular tables on the one or more nodes of the cluster according to the certain data placement scheme, executing a query execution request directed to at least one table of the particular tables; and wherein the method is performed by one or more computing devices.