Oracle/admin

tablespace 사용량 80% resize

소마후니 2017. 3. 23. 15:15

SELECT V.FILE_NAME,V.TOT_MB,V.FREE_MB,V.FREE_RAT
        ,ROUND((((0.2*V.TOT_MB)-V.FREE_MB) + V.TOT_MB)+40,-2)    RESIZE_GB
        ,'ALTER DATABASE DATAFILE '''||V.FILE_NAME||''' RESIZE '||ROUND((((0.2*V.TOT_MB)-V.FREE_MB) + V.TOT_MB)+40,-2)||'M;'
 FROM (
     SELECT A.FILE_NAME,A.BYTES/1024/1024 TOT_MB,TRUNC(B.BYTES/1024/1024) FREE_MB
            ,TRUNC((B.BYTES/1024/1024)/(A.BYTES/1024/1024)*100)         FREE_RAT
     FROM DBA_DATA_FILES A,
          (SELECT FILE_ID,SUM(BYTES) BYTES FROM DBA_FREE_SPACE GROUP BY FILE_ID) B
     WHERE A.FILE_ID = B.FILE_ID
     AND TRUNC((B.BYTES/1024/1024)/(A.BYTES/1024/1024)*100) <20
     )V
where V.TOT_MB != ROUND((((0.2*V.TOT_MB)-V.FREE_MB) + V.TOT_MB)+40,-2)
ORDER BY 1 ;