Pour récupérer l'espace libre d'une table, on peut utiliser :
TRUNCATE table_toto DROP STORAGE
ou
ALTER TABLE table_toto DEALLOCATE UNUSED
Avant tout il faut connaitre quel table contient des trous (de la fragmentation dû aux commande de DELETE...)
La requete suivante permet de connaitre la somme totale de la fragmentation contenu dans le tablespace (il faudra l'adapter pour connaitre le nom des tables fragmentés) :
SELECT SUM(BYTES)/1024 "Taille en KO" FROM DBA_FREE_SPACE
WHERE TABLESPACE_NAME= 'TBS_TOTO';
(astuce : il faut déjà calculer les statistiques sur vos tables afin d''avoir des résultats cohérents ! )
Pour les feignants la requête est ici. Ne nécessite pas de monter en charge pour être fonctionnelle.
La requête suivante révèle la quantité d'espace libre disponible comme libres extents dans le tablespace SMUNDO :
SELECT TABLESPACE_NAME, FILE_ID, BYTES, BLOCKS FROM DBA_FREE_SPACE WHERE TABLESPACE_NAME='SMUNDO';