¿Oracle 11g cómo estimar el espacio de tabla necesario TEMP?

Realizamos una carga masiva inicial de algunas tablas (tanto el origen como el destino son Oracle 11g). El proceso es el siguiente: 1. truncar, 2. soltar índices (el PK y un índice único), 3. inserción masiva, 4. crear índices (nuevamente el PK y el índice único). Ahora tengo el siguiente error:

alter table TARGET_SCHEMA.MYBIGTABLE
add constraint PK_MYBIGTABLE primary key (MYBIGTABLE_PK)
ORA-01652: unable to extend temp segment by 128 in tablespace TEMP

Así que, obviamente, el espacio de tablas TEMP es demasiado pequeño para la creación de PK (para su información, la tabla tiene 6 columnas y unos 2,2 mil millones de registros). Así que hice esto:

explain plan for
select line_1,line_2,line_3,line_4,line_5,line_6,count(*) as cnt
from SOURCE_SCHEMA.MYBIGTABLE
group by line_1,line_2,line_3,line_4,line_5,line_6;

select * from table( dbms_xplan.display );
/*
-----------------------------------------------------------------------------------------------
| Id  | Operation          | Name             | Rows  | Bytes |TempSpc| Cost (%CPU)| Time     |
-----------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT   |                  |  2274M|    63G|       |    16M  (2)| 00:05:06 |
|   1 |  HASH GROUP BY     |                  |  2274M|    63G|   102G|    16M  (2)| 00:05:06 |
|   2 |   TABLE ACCESS FULL| MYBIGTABLE       |  2274M|    63G|       |   744K  (7)| 00:00:14 |
-----------------------------------------------------------------------------------------------
*/

¿Es así como saber cuánto espacio de tablas TEMP será necesario para la creación de PK (102 GB en mi caso)? ¿O harías la estimación diferente?

Adicional: la PK solo existe en el sistema de destino. Pero justo, así que ejecuto su consulta en PK de destino:

explain plan for
select MYBIGTABLE_PK 
from TARGET_SCHEMA.MYBIGTABLE
group by MYBIGTABLE_PK ;

-------------------------------------------------------------------------------------------
| Id  | Operation          | Name                 | Rows  | Bytes | Cost (%CPU)| Time     |
-------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT   |                      |     1 |    13 |     3  (34)| 00:00:01 |
|   1 |  HASH GROUP BY     |                      |     1 |    13 |     3  (34)| 00:00:01 |
|   2 |   TABLE ACCESS FULL| MYBIGTABLE           |     1 |    13 |     2   (0)| 00:00:01 |
-------------------------------------------------------------------------------------------

Entonces, ¿cómo tendría que leer esto ahora?

Respuestas a la pregunta(1)

Su respuesta a la pregunta