These are only some of the many query-processing strategies used in database systems.
Most systems only implement a few strategies.
Some systems make a heuristic guess of a good strategy, in order to minimize the number of strategies to be considered. Then the optimizer considers every possible strategy, but quits as soon as it determines that the cost is greater than the best previously considered strategy. To simplify the strategy selection task, a query may be split into several sub-queries. Examination of a query for common subqueries and the estimation of the cost of a large number of strategies impose a substantial overhead on query processing. However, this is usually more than offset by savings at query execution time.