SORT (UNIQUE)

Description

Sorts rows and removes duplicates

Versions

This operation is implemented in the following versions

7.3.4
8.0.4
8.0.5
8.0.6
8.1.5
8.1.6
8.1.7
9.0.1
9.2.0
10.1.0
10.2.0

Example

This example was developed using Oracle 9.2.0.1 on Windows 2000

This example requires the following table definition

    CREATE TABLE t1 (c1 NUMBER);

The table does not need to be analysed

Consider the statement

    SELECT DISTINCT c1 FROM t1;

In Oracle 9.2 this statement generates the following execution plan

0     SELECT STATEMENT Optimizer=CHOOSE
1   0   SORT (UNIQUE)
2   1     TABLE ACCESS (FULL) OF 'T1'

In Oracle 10.2 this statement generates the following execution plan

0     SELECT STATEMENT Optimizer=CHOOSE
1   0   HASH (UNIQUE)
2   1     TABLE ACCESS (FULL) OF 'T1'

However, if the "_gby_hash_aggregation_enabled" parameter is set to FALSE (default TRUE) as follows

    ALTER SESSION SET "_gby_hash_aggregation_enabled" = FALSE;

then the following execution plan is generated:

0      SELECT STATEMENT Optimizer=CHOOSE
1    0   SORT (UNIQUE)
2    1     TABLE ACCESS (FULL) OF 'T1'