1. A method for simulating an operation, the method comprising: executing, with a real system having a processor, an operation under a first set of conditions, wherein the first set of conditions includes a first pre-determined size of memory and includes a first number of partitions that are used in executing the operation in the real system, wherein the operation is a deterministic hash join; determining a characteristic associated with the execution of the operation under the first set of conditions, the characteristic being an unknown operating parameter prior to execution of the operation, wherein the characteristic is a size of input tables of the hash join; and executing, with a virtual system, a simulation of the operation under a second set of conditions different from the first set of conditions, wherein the simulation of the operation is constrained by the determined characteristic, and wherein the second set of conditions includes a second pre-determined size of memory that is different from the first pre-determined size of memory and includes a second number of partitions that is different from the first number of partitions that are used in executing the operation in the virtual system, and wherein redistribution of tuples occurs by: in response to the first number of partitions being greater than the second number of partitions, redistributing the tuples from unmapped partitions in the real system to mapped partitions in the virtual system, wherein the unmapped partitions exist in the real system and not in the virtual system, and wherein the mapped partitions exist in both the real system and the virtual system; and in response to the first number of partitions being smaller than the second number of partitions, redistributing a percentage of the tuples from the mapped partitions in the real system to the unmapped partitions in the virtual system.