Home > Oracle Tips Archive
Oracle Tips Archive
表領域の使用率を調べる
- 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行目の通りに計算することで使用率が得られます。
- Comments: 0
- TrackBacks: 1
Home > Oracle Tips Archive