Bonjour à tous,

Je désire estimer le pourcentage d'espace occupé d'un tablespace en ignorant celui occupé par les lignes supprimées...

J'ai mis au point une 1ère requête SQL
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
SELECT   RTRIM (LTRIM (t.tablespace_name, 'TAB_FILTRE_'), '_L') TABLESPACE,
         ROUND (  (MAX (d.BYTES) / 1024 / 1024)
                - (SUM (DECODE (f.BYTES, NULL, 0, f.BYTES)) / 1024 / 1024),
                2
               ) used_mb,
         ROUND (SUM (DECODE (f.BYTES, NULL, 0, f.BYTES)) / 1024 / 1024,
                2
               ) free_mb
    FROM dba_free_space f, dba_data_files d, dba_tablespaces t
   WHERE t.tablespace_name = d.tablespace_name
     AND f.tablespace_name(+) = d.tablespace_name
     AND f.file_id(+) = d.file_id
     AND t.tablespace_name LIKE 'TAB_FILTRE%'
GROUP BY t.tablespace_name
ORDER BY 1, 3 DESC
Malheureusement, cette requête ne tient pas compte de l'espace libéré par les lignes supprimées par une commande DELETE.

Existe-t-il une table système ou toute autre solution (SQL j'entends) pour affiner ce résultat ?

Par avance merci de votre aide ou remarque