overhead is removed, and there may be more time available to evaluate a larger number of
execution strategies, thereby increasing the chances of finding a more optimum strategy.
For queries that are executed many times, taking some additional time to find a more
optimum plan may prove to be highly beneficial. The disadvantages arise from the fact
that the execution strategy that is chosen as being optimal when the query is compiled may
no longer be optimal when the query is run. However, a hybrid approach could be used
to overcome this disadvantage, where the query is re-optimized if the system detects that
the database statistics have changed significantly since the query was last compiled.
Alternatively, the system could compile the query for the first execution in each session,
and then cache the optimum plan for the remainder of the session, so the cost is spread
across the entire DBMS session.