conn sys/SysPassword1@//localhost:1521/freepdb1 as sysdba
-- Create a tablespace and user for the test.
drop user if exists reclaim_user cascade;
drop tablespace if exists reclaim_ts including contents and datafiles;
create smallfile tablespace reclaim_ts datafile
size 10m autoextend on next 1m,
size 10m autoextend on next 1m,
size 10m autoextend on next 1m,
size 10m autoextend on next 1m;
create user reclaim_user identified by reclaim_user default tablespace reclaim_ts quota unlimited on reclaim_ts;
grant create session, create table to reclaim_user;
grant select_catalog_role to reclaim_user;
-- Create and populate two tables in the test schema.
conn reclaim_user/reclaim_user@//localhost:1521/freepdb1
create table t1 (
id number,
col1 varchar2(4000),
col2 varchar2(4000),
constraint t1_pk primary key (id)
);
create table t2 (
id number,
col1 varchar2(4000),
col2 varchar2(4000),
constraint t2_pk primary key (id)
);
insert /*+append*/ into t1
select rownum, rpad('x', 4000, 'x'), rpad('x', 4000, 'x')
from dual
connect by level <= 100000;
commit;
insert /*+append*/ into t2
select rownum, rpad('x', 4000, 'x'), rpad('x', 4000, 'x')
from dual
connect by level <= 100000;
commit;
exec dbms_stats.gather_table_stats(null, 't1');
exec dbms_stats.gather_table_stats(null, 't2');
column file_name format a30
select substr(file_name, -28) as file_name, blocks, bytes/1024/1024 as size_mb
from dba_data_files
where tablespace_name = 'RECLAIM_TS';
FILE_NAME BLOCKS SIZE_MB
------------------------------ ---------- ----------
o1_mf_reclaim__mtmskcv6_.dbf 124928 976
o1_mf_reclaim__mtmskcvd_.dbf 109312 854
o1_mf_reclaim__mtmskcvl_.dbf 98048 766
o1_mf_reclaim__mtmskcvr_.dbf 98944 773
SQL>
column table_name format a10
select table_name, blocks, (blocks*8)/1024 as size_mb
from user_tables
where table_name in ('T1', 'T2')
order by 1;
TABLE_NAME BLOCKS SIZE_MB
---------- ---------- ----------
T1 200692 1567.90625
T2 200692 1567.90625
SQL>
truncate table t1;
exec dbms_stats.gather_table_stats(null, 't1');