1. A method of query optimization, comprising: comparing a complexity measure of a client query received from a client application to a predetermined threshold, wherein the predetermined threshold is determined based on query execution data collected from a previous query; generating an optimized query by automatically modifying the client query without user input to reduce the complexity measure of the client query if the complexity measure of the client query exceeds the predetermined threshold; submitting the optimized query to a server application on a server; selecting a post-processing routine to be applied to a result set of the optimized query; applying the post-processing routine to the result set of the optimized query to generate a filtered result set; and forwarding the filtered result set to the client application.
1. A method of query optimization, comprising: comparing a complexity measure of a client query received from a client application to a predetermined threshold, wherein the predetermined threshold is determined based on query execution data collected from a previous query; generating an optimized query by automatically modifying the client query without user input to reduce the complexity measure of the client query if the complexity measure of the client query exceeds the predetermined threshold; submitting the optimized query to a server application on a server; selecting a post-processing routine to be applied to a result set of the optimized query; applying the post-processing routine to the result set of the optimized query to generate a filtered result set; and forwarding the filtered result set to the client application. 3. The method of claim 1 , wherein the predetermined threshold is determined further based on system data comprising at least one of: static system data including at least one of server performance characteristics, server capacity characteristics, a server content distribution, a predetermined maximum client load, a predetermined maximum server load, and predetermined maximum network load; and dynamic system data including at least one of a measure of the server load at the time a query is submitted, a measure of the client load at the time the query is submitted, and a measure of the network load at the time the query is submitted.