Oracle et vérification du remplissage des TableSpace ?

Oracle et vérification du remplissage des TableSpace ? - SQL/NoSQL - Programmation

Marsh Posté le 07-11-2007 à 12:50:07    

Bonjour,
 
J'aimerais savoir comment on fait sous Oracle pour obtenir le % d'utilisation maximal des tablespaces qui ont été créées pour une base de données.
 
Exemple, création d'un tablespace DB_SPACE de taille 8M MAXSIZE 16M
 
Si je fais un select * from dba_tablespaces, je peux obtenir le BlockSize.
Je peux faire aussi un select * from dba_freespace ;
 
Cependant je n'arrive pas à savoir si un de mes TablesSpace a atteind sa taille limite.
 
Quelqu'un pourrait m'aider s'il vous plait ?

Reply

Marsh Posté le 07-11-2007 à 12:50:07   

Reply

Marsh Posté le 07-11-2007 à 13:49:14    

Voici une petite procédure pour cela

REM =====================================================================
REM Procedure     : tbs01
REM But           : Taille et taux de remplissage des tablespaces
REM Lancement     : Compte sys
REM =====================================================================
spool tbs01
 
COL ts               FOR A30 HEAD "TABLESPACE"          TRUNC
COL vol              FOR A10 HEAD "VOLUME"              TRUNC
COL vol_o            FOR A10 HEAD "VOLUME|OCCUPE"       TRUNC
COL vol_r            FOR A10 HEAD "VOLUME|RESTANT"      TRUNC
COL tx_r             FOR A11 HEAD "TAUX DE|REMPLISSAGE" TRUNC
 
 
SELECT t.name                                             ts   ,
       LPAD   (
       TO_CHAR( SUM(f.blocks)*
                t.blocksize  *
                COUNT(DISTINCT(f.file#))
              /(COUNT(*)     *
                1024         ))||' K',10,' ')             vol  ,
       LPAD   (
       TO_CHAR( SUM(s.blocks)*
                t.blocksize
              /(1024         *
                COUNT(DISTINCT(f.file#))))||' K',10,' ')  vol_o,
       LPAD   (
       TO_CHAR((SUM(f.blocks)*
                t.blocksize  *
                COUNT(DISTINCT(f.file#))
              /(COUNT(*)     *
                1024         ))
             - (SUM(s.blocks)*
                t.blocksize
              /(1024         *
                COUNT(DISTINCT(f.file#)))))||' K',10,' ') vol_r,
       LPAD   (
       TO_CHAR(
       CEIL (((SUM  (s.blocks)*
               COUNT(*))
            / (SUM  (f.blocks)*
               POWER(COUNT(DISTINCT(f.file#  )),2)))
              *100))||' %',10,' ')                        tx_r
FROM   sys.seg$       s,
       sys.ts$        t,
       sys.file$      f
WHERE  s.ts# (+)      = t.ts#
  AND  f.ts#          = t.ts#
  AND  f.status$      = 2
GROUP BY
       t.name         ,
       t.blocksize
ORDER BY
       1
;
SPOOL OFF
exit

Reply

Marsh Posté le 07-11-2007 à 22:08:52    

Si tu as OEM c'est fait direct dedans sous forme graphique ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed