SQL> explain plan for SELECT o.owner, o.object_type, COUNT(*) 2 FROM all_my_objects o 3 GROUP BY CUBE (o.object_type, o.owner); Explained. SQL> SELECT * FROM table(dbms_xplan.display(NULL,NULL,'all')); Plan hash value: 2535396241 --------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | --------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 339K| 9272K| 1653 (2)| 00:00:20 | | 1 | SORT GROUP BY | | 339K| 9272K| 1653 (2)| 00:00:20 | | 2 | GENERATE CUBE | | 339K| 9272K| 1653 (2)| 00:00:20 | | 3 | SORT GROUP BY | | 339K| 9272K| 1653 (2)| 00:00:20 | | 4 | TABLE ACCESS FULL| ALL_MY_OBJECTS | 339K| 9272K| 1640 (1)| 00:00:20 | --------------------------------------------------------------------------------------- Query Block Name / Object Alias (identified by operation id): ------------------------------------------------------------- 1 - SEL$1 4 - SEL$1 / O@SEL$1 Column Projection Information (identified by operation id): ----------------------------------------------------------- 1 - (#keys=3) "O"."OBJECT_TYPE"[VARCHAR2,19], "O"."OWNER"[VARCHAR2,30], SYSDEF[4], COUNT(COUNT(*))[22] 2 - "O"."OBJECT_TYPE"[VARCHAR2,19], "O"."OWNER"[VARCHAR2,30], SYSDEF[4], COUNT(*)[8] 3 - (#keys=2) "O"."OBJECT_TYPE"[VARCHAR2,19], "O"."OWNER"[VARCHAR2,30], COUNT(*)[8] 4 - "O"."OWNER"[VARCHAR2,30], "O"."OBJECT_TYPE"[VARCHAR2,19] Note ----- - dynamic sampling used for this statement