Group rows together based on column values
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 c1 FROM t1 GROUP BY c1;
In Oracle 10.1 and below this generates the following execution plan
0 SELECT STATEMENT Optimizer=CHOOSE 1 0 SORT (GROUP BY) 2 1 TABLE ACCESS (FULL) OF 'T1'
In Oracle 10.2 this statement creates the following execution plan
0 SELECT STATEMENT Optimizer=CHOOSE 1 0 HASH (GROUP BY) 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 (GROUP BY) 2 1 TABLE ACCESS (FULL) OF 'T1'