1. A database management system comprising a) a network interface, for receiving database queries from two or more client applications, the client applications operating on two or more user client computers, the system providing a least one connection into the system for each such client application; b) a group of one or more operational nodes for executing the queries as database operations, each operational node implemented as a logical collection of software components that execute on one or more physical machines; c) client applications establish connections with the database and interact with the system in a query language; d) one or more operational nodes functioning as storage nodes and collectively referred to as a storage nodegroup; e) one or more operational nodes functioning as compute nodes and collectively referred to as a compute nodegroup; f) the system further including tables for storing user data, and grouping the tables into databases; g) the tables being associated with storage nodegroups and data for the tables is stored on nodes that are part of the associated nodegroup; h) a Dynamic Query Planner (DQP) that analyzes queries received for execution from client applications and transforms those queries into Query Execution Steps (QES) based on one or more factors including a query type, a schema of tables referenced by the query, or a manner in which data in the tables is distributed on the storage nodegroups; i) a Query Execution Engine (QEE) that executes the QES and produces results of the query that are then returned to the client application that originated the query; j) a QES includes redistribution of data in a table from one location to another location as part of the processing of the query, and further such that k) the system inspects each row of data that is being redistributed to determine whether or not the data actually needs to be redistributed or could be safely discarded, thereby reducing the amount of data being redistributed needlessly, without compromising the correctness of the results of the query being processed; l) a persistent state is associated with each connection including at least a compute-nodegroup that is associated with the connection; and m) intermediate data streams generated as part of the query processing related to a connection are associated with the compute-nodegroup associated with the connection.