Query per recuperare spazio disco allocato dai DATAFILE ma non utilizzato

Query per recuperare spazio disco allocato dai DATAFILE ma non utilizzato

.

Con l’articolo Query per recuperare spazio disco allocato dai DATAFILE ma non utilizzato, forniamo uno statement che permette di recuperare lo spazio sul disco, quindi in caso di emergenza, possiamo provare a recuperare qualche GB non utilizzato dai TABLESPACE.

Lo spazio è recuperabile solo se contiguo, quindi se troppo frammentato occorrerà effettuare attività di reorg per avere una scrittura in lineare e senza frammentazione.

Statement per recuperare lo spazio da tutti i data file di un determinato file system:

set pages 999
set lines 300
select 'alter database datafile ''' || file_name || ''' resize ' || ceil( (nvl(hwm,1)*(select DISTINCT BLOCK_SIZE from dba_tablespaces))/1024/1024 ) || 'm;' cmd
from dba_data_files a, ( select file_id, max(block_id+blocks-1) hwm from dba_extents group by file_id) b
where a.file_id = b.file_id(+)
and a.file_name like '%/&file_system%'
and ceil(blocks*(select DISTINCT BLOCK_SIZE from dba_tablespaces)/1024/1024)- ceil((nvl(hwm,1)*(select DISTINCT BLOCK_SIZE from dba_tablespaces))/1024/1024 ) > 0;

Statement per recuperare lo spazio da tutti i datafile di un TABLESPACE:

set pages 999
set lines 300
select 'alter database datafile ''' || file_name || ''' resize ' || ceil( (nvl(hwm,1)*(select DISTINCT BLOCK_SIZE from dba_tablespaces))/1024/1024 ) || 'm;' cmd
from dba_data_files a, ( select file_id, max(block_id+blocks-1) hwm from dba_extents group by file_id) b
where a.file_id = b.file_id(+)
and a.tablespace_name ='&tbsp'
and ceil(blocks*(select DISTINCT BLOCK_SIZE from dba_tablespaces)/1024/1024)- ceil((nvl(hwm,1)*(select DISTINCT BLOCK_SIZE from dba_tablespaces))/1024/1024 ) > 0;

Lascia un commento

Wordpress Social Share Plugin powered by Ultimatelysocial