1. A method comprising the steps of: partitioning a database query into an initial partition comprising a plurality of parallel groups; executing said query, via an execution plan for performing said query, based on said initial partition; identifying a first sampling subset of data from said plurality of parallel groups; substantially in parallel with said executing of said query, executing said execution plan on said first sampling subset of data as a first sampling thread; and modifying said execution plan for performing said query based on feedback from said executing of said execution plan on said first sampling subset of data, wherein said executing of said query comprises periodically performing re-partitioning at an aggregation point,and wherein said modifying comprises performing said re-partitioning based on said feedback, and wherein one or more of said are performed by a hardware device.