Tablespace Info
Submitted by dave on Wed, 03/25/2009 - 22:47
Basic form for Adding Datafile to a Tablespace
ALTER TABLESPACE "TABLESPACE_NAME"
ADD
DATAFILE '/path/filename.dbf' SIZE
100M REUSE AUTOEXTEND
ON NEXT 10M MAXSIZE 65535M;
Recommend size to shrink datafiles to based on unused(free) space
select ddf.file_name,
dfs.file_id,
ddf.blocks,
(ddf.blocks*value)/1024/1024 file_size_mb,
dfs.block_id block_hwm,
ddf.blocks-dfs.block_id fat_blocks,
floor(((ddf.blocks-dfs.block_id)*value)/1024/1024)
fat_mb,
ceil(((ddf.blocks*value)/1024/1024 -
((ddf.blocks-dfs.block_id)*value)/1024/1024)) resize_to
from dba_free_space dfs,
dba_data_files ddf,
v$parameter
where v$parameter.name = 'db_block_size'
and (ddf.tablespace_name = UPPER('&&table_space')
or 'ALL' = UPPER('&&table_space'))
and dfs.tablespace_name = ddf.tablespace_name
and dfs.file_id = ddf.file_id
and dfs.block_id = (select max(block_id)
from dba_free_space
where file_id = dfs.file_id)
order by fat_blocks desc;
Display the percentage of free space in a tablespace
set pagesize 99 column total_space format 999,999,999,999 column free_space format 999,999,999,999 column pct_free format 999.99 select a.tablespace_name, total_space, free_space, free_space/total_space*100 pct_free from (select tablespace_name, sum(bytes)/1024/1024 total_space from dba_data_files group by tablespace_name) a, (select tablespace_name, sum(bytes)/1024/1024 free_space from dba_free_space group by tablespace_name) b where a.tablespace_name=b.tablespace_name(+) order by pct_free;