A computer-implemented method, the method comprising: determining that a query executed by a database management system has an execution duration that exceeds a completion threshold; defining a fingerprint for the query based on one or more statements from the query, wherein the fingerprint is a unique identifier of the query based at least on one or more generic functions performed during execution of the query; storing the fingerprint corresponding to the query in a data structure; flagging the fingerprint for evaluation in response to the execution duration of the query exceeding the completion threshold; in response to receiving a subsequent query request corresponding to the fingerprint, and based on the fingerprint being flagged, analyzing statistics of queries with the fingerprint to determine whether execution of the subsequent query request will cause an unacceptable negative impact on the database management system; modifying the data structure to classify the fingerprint into one of a plurality of different query classes based on a result of the analysis, wherein the query classes comprise (i) a permissible query class, (ii) a blocked query class and (iii) a redirected query class, wherein the fingerprints in the permissible query class correspond to simple queries that use constant or unique keys that will resolve to a single row, or acceptable queries that have a cost that does not exceed an acceptable threshold cost and with an execution time less than the completion threshold time, wherein the fingerprints in the redirected query class correspond to acceptable queries that have a cost that does not exceed the acceptable threshold and with an execution time that exceeds the completion threshold time, and wherein the fingerprints in the blocked query class correspond to acceptable queries that have a cost that exceeds the acceptable threshold; and controlling execution of a future query request with the same fingerprint based on the classification of the fingerprint, wherein (i) if the fingerprint is assigned to the permissible query class, the future query is executed against a first database without analyzing the statistics, (ii) if the fingerprint is assigned to the blocked query class, the future query is blocked from being executed, and (iii) if the fingerprint is assigned to the redirected query class, the future query is executed against a second database, which is different than the first database. determining that a query executed by a database management system has an execution duration that exceeds a completion threshold; defining a fingerprint for the query based on one or more statements from the query, wherein the fingerprint is a unique identifier of the query based at least on one or more generic functions performed during execution of the query; storing the fingerprint corresponding to the query in a data structure; flagging the fingerprint for evaluation in response to the execution duration of the query exceeding the completion threshold; in response to receiving a subsequent query request corresponding to the fingerprint, and based on the fingerprint being flagged, analyzing statistics of queries with the fingerprint to determine whether execution of the subsequent query request will cause an unacceptable negative impact on the database management system; modifying the data structure to classify the fingerprint into one of a plurality of different query classes based on a result of the analysis, wherein the query classes comprise (i) a permissible query class, (ii) a blocked query class and (iii) a redirected query class, wherein the fingerprints in the permissible query class correspond to simple queries that use constant or unique keys that will resolve to a single row, or acceptable queries that have a cost that does not exceed an acceptable threshold cost and with an execution time less than the completion threshold time, wherein the fingerprints in the redirected query class correspond to acceptable queries that have a cost that does not exceed the acceptable threshold and with an execution time that exceeds the completion threshold time, and wherein the fingerprints in the blocked query class correspond to acceptable queries that have a cost that exceeds the acceptable threshold; and wherein the query classes comprise (i) a permissible query class, (ii) a blocked query class and (iii) a redirected query class, wherein the fingerprints in the permissible query class correspond to simple queries that use constant or unique keys that will resolve to a single row, or acceptable queries that have a cost that does not exceed an acceptable threshold cost and with an execution time less than the completion threshold time, wherein the fingerprints in the redirected query class correspond to acceptable queries that have a cost that does not exceed the acceptable threshold and with an execution time that exceeds the completion threshold time, and wherein the fingerprints in the blocked query class correspond to acceptable queries that have a cost that exceeds the acceptable threshold; and controlling execution of a future query request with the same fingerprint based on the classification of the fingerprint, wherein (i) if the fingerprint is assigned to the permissible query class, the future query is executed against a first database without analyzing the statistics, (ii) if the fingerprint is assigned to the blocked query class, the future query is blocked from being executed, and (iii) if the fingerprint is assigned to the redirected query class, the future query is executed against a second database, which is different than the first database.