При инсерте в таблицу (insert as select) из запроса вида:
select t.*,sum(t.zzzz) over(partition by t.last_ddl_time ) x
from (
select r.*,sum(r.zzz) over(partition by r.created )zzzz
from (
select e.*,sum(e.zz) over(partition by e.object_id )zzz
from (
select w.*,sum(w.z) over(partition by w.object_name )zz
from (
select q.*,sum(q.namespace) over(partition by q.owner ) z
from table1 q) w) e) r) t
каждый подзапрос использует временное ТС, и занятое им место не освобождается при переходе к след. подзапросу. Использование tempseg мониторится по v$sql_workarea_active.
В случае же операции create as select после перехода к след. подзапросу временные данные от предыдущего подзапроса очищаются. Чрезмерного заполнения временного ТС нет.
Собственно, вопрос: чем обосновано такое поведение?
10.2.0.4, 11.1.0.7; table1 пусть будет
create table1 as select * from dba_objects connect by level<=10