緣起
由於工作上的需求, 需評估目前 Oracle 資料庫的磁碟空間使用狀況, 故 Google 了一下資料, 留作日後查詢之用.在執行時, 請以 Oracle DBA 的身份登入
sqlplus sys/password@MyOracle as sysdba
以下主要用到 DBA_DATA_FILES 和 DBA_FREE_SPACE這兩個View, 會呈現整個資料庫所有 tablespace 的使用狀況; 如果只想查某個 tablespace, 請將以下 -- WHERE TABLESPACE_NAME='My_Tablespace_Name' , 解除註解, 同時置換為實際的 tablespace name 即可.
SELECT A.TABLESPACE_NAME, A.FILE_NAME, ROUND(B.FREE_GB,2) AS FREE_GB , ROUND(A.TOTAL_GB - b.FREE_GB) AS USED_GB , ROUND(A.TOTAL_GB,2) AS TOTAL_GB , ROUND(((A.TOTAL_GB - B.FREE_GB)/ A.TOTAL_GB )*100,2) AS USED_PERCENT, ROUND((B.FREE_GB/ A.TOTAL_GB )*100,2) AS FREE_PERCENT FROM ( SELECT TABLESPACE_NAME, FILE_NAME, SUM(BYTES)/ (1024*1024*1024) AS TOTAL_GB FROM DBA_DATA_FILES -- WHERE TABLESPACE_NAME='My_TableSpace_Name' GROUP BY TABLESPACE_NAME, FILE_NAME )A, ( SELECT TABLESPACE_NAME, SUM(BYTES) / (1024*1024*1024) AS FREE_GB FROM DBA_FREE_SPACE -- WHERE TABLESPACE_NAME='My_TableSpace_Name' GROUP BY TABLESPACE_NAME ) B WHERE A.TABLESPACE_NAME= B.TABLESPACE_NAME ;
以下為執行結果截圖
沒有留言:
張貼留言