Sorts rows and removes duplicates
This operation is implemented in the following versions
|
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'