Узнаем сколько занимает каждый TableSpace:
(Размер указан в мегабайтах)
select a.tablespace_name, totalspace, nvl(freespace,0) freespace,
(totalspace-nvl(freespace,0)) used,
((totalspace-nvl(freespace,0))/totalspace)*100 "%USED"
from
(select tablespace_name, sum(bytes)/1048576 totalspace
from dba_data_files
group by tablespace_name) a,
(select tablespace_name, sum(Bytes)/1048576 freespace
from dba_free_space
group by tablespace_name) b
where a.tablespace_name = b.tablespace_name (+)
and ((totalspace-nvl(freespace,0))/totalspace)*100 > 90
order by 5 desc
Теперь узнаем сколько занимают таблицы в указанном TableSpace:
(Размер в мегабайтах, имя нужного TableSpace - берем из результатов предыдущего запроса, для всех при больших базах может выполняться долго)
select de.owner, de.segment_name, sum(de.bytes)/1048576, de.segment_type from dba_extents de
where de.owner in ('нужный tablespace')
group by de.owner, de.segment_name, de.segment_type
Вот и всё.