Cost-based ORDER BY sort avoidance Usually, sorting requires an extra step to put the data into the right order. This extra step can be avoided for data that are already in the right order. ORDER BYcost-based avoidance of

For example, if a single-table query has an ORDER BY on a single column, and there is an index on that column, sorting can be avoided if uses the index as the access path.

Where possible, 's query compiler transforms an SQL statement internally into one that avoids this extra step. For information about internal transformations, see . This transformation, if it occurs, happens before optimization. After any such transformations are made, the optimizer can do its part to help avoid a separate sorting step by choosing an already sorted access path. It compares the cost of using that path with the cost of sorting. does this for statements that use an ORDER BY clause in the following situations:

ORDER BY specifies a priority of ordering of columns in a result set. For example, ORDER BY X, Y means that column X has a more significant ordering than column Y.

The situations that allow to avoid a separate ordering step for statements with ORDER BY clauses are: