Home > Oracle Tips Archive

Oracle Tips Archive

表領域の使用率を調べる

  • Posted by: 一ノ瀬裕夜
  • 2009年5月13日 16:37
  • Oracle Tips

SELECT TABLESPACE_NAME, (1-SUMFREE.BLOCKS/SUMDAT.BLOCKS)*100 AS USED
FROM (
    SELECT TABLESPACE_NAME, SUM(BLOCKS) AS BLOCKS
    FROM DBA_DATA_FILES
    GROUP BY TABLESPACE_NAME
) SUMDAT
JOIN (
    SELECT TABLESPACE_NAME, SUM(BLOCKS) AS BLOCKS
    FROM DBA_FREE_SPACE
    GROUP BY TABLESPACE_NAME
) SUMFREE
USING (TABLESPACE_NAME)
ORDER BY TABLESPACE_NAME;

表領域の使用率は当然のことながら以下のように求められます。

(表領域の使用量)÷(表領域の容量)

 

仮想表SUMDATではデータファイルのサイズを表領域ごとに集計し、各表領域のサイズを算出しています。

同様に、仮想表SUMFREEでは空ブロックのサイズを表領域ごとに集計し、各表領域の空き領域サイズを算出しています。

言うまでもなく(表領域の使用量)=(表領域の容量)-(表領域の空き容量)です。

よって、SELECT文の1行目の通りに計算することで使用率が得られます。

Index of all entries

Home > Oracle Tips Archive

Search
Feeds

Return to page top