Skip to Main Content

 

Auswahl  

Komplett Übersicht aller Oracle Tipps

Tablespace Shrink ab 23ai 

Oracle
DBA
RDBMS 23.1
27.11.24 (MP)
11.02.25(MP)

Passende Schulungen zum Thema

Seit 30 Jahren warte ich auf dieses Feature, aber wie sagt man besser spät als nie …

Ab 23ai kann nun endlich ein Tablespace reorganisiert werden. Es gibt da nur ein paar Einschränkungen:

  1. Es muss ein Bigfile Tablespace sein
  2. Es dürfen keine exotischen und schreibgeschützten Objekte dort liegen wie z.B.
    aud$unified

Zuerst prüfen wir mal, welche Tablespaces sich den lohnen bzgl eines Reorg?

set serveroutput on linesize 400
set long 9999999
WITH function analyze_tbs(tbs_name In VARCHAR2) RETURN CLOB
IS
PRAGMA AUTONOMOUS_TRANSACTION;
v_result CLOB:=empty_clob();
BEGIN
dbms_output.put_line('###  '||tbs_name||'  ###:');
DBMS_SPACE.TABLESPACE_SHRINK(tbs_name, 
SHRINK_MODE => DBMS_SPACE.TS_MODE_ANALYZE, 
SHRINK_RESULT => v_result);
RETURN tbs_name||':'||chr(10)||v_result;
END;
select analyze_tbs(tablespace_name)
from dba_tablespaces
where bigfile='YES'
and contents='PERMANENT';

 

Nun können wir einen Tablespace von Oracle shrinken/reorganisieren …

BEGIN
DBMS_SPACE.TABLESPACE_SHRINK('SYSAUX', 
SHRINK_MODE => dbms_space.ts_mode_shrink, 
target_size => dbms_space.ts_target_max_shrink);
END;
/

Viel Spaß mit dem neuen gewonnen Speicherplatz. Die Einsparung kann man ja nun in eine Schulung stecken :-)