Oracle11g新增檢視查詢表空間使用率DBA_TABLESPACE_USAGE_METRICS

巡完南山巡南山發表於2019-01-18

Oracle11g版本增加了一個表空間查詢的檢視 DBA_TABLESPACE_USAGE_METRICS,非常方便,不像以前要寫很長的sql去查詢了,但簡便的同時也帶來了一些問題,而且有些問題還非常隱蔽,接下來逐一說明一下。

set linesize 200 pagesize 99

col tablespace_name for a36

select TABLESPACE_NAME,ROUND((t.TABLESPACE_SIZE * p.value)/1024/1024/1024) TABLESPACE_SIZE_GB,ROUND((t.USED_SPACE * p.value)/1024/1024/1024) USED_SPACE_GB,USED_PERCENT

from DBA_TABLESPACE_USAGE_METRICS t

INNER JOIN v$parameter p ON p.name = 'db_block_size' order by 4 desc;

執行結果如下

TABLESPACE_NAME    TABLESPACE_SIZE_GB USED_SPACE_GB USED_PERCENT

------------------ ------------------ ------------- ------------

UNDOTBS1           350           309   88.3769742

TBS_DATA2          7176          5252   73.1868556

TBSFSH_DATA21       10224          7294   71.3478941

TBSFSH_DATA2        7049          4230   60.0061867

SYSAUX             64            24   38.0566778

TBSFSH_DATA22        3683          1046   28.3976447

SYSTEM             64             6   9.74960792

TEMP              976            40   4.11586419

UNDOTBS2           448             0   .110953248


該檢視雖然帶來了簡便,但也有一下注意的地方

1、它的大小計算單位是block,所以需要關聯下資料庫的block大小

2、表空間總容量如果是可自動擴充套件的datafile,那麼結果就是所有datafile最大的max值的和

3、該檢視不穩定,add datafile後不一定及時重新整理,可能會等一段時間

4、當表空間drop datafile後該檢視由於bug,總容量不會減小,需要重啟例項

5、某表空間truncate某張表後,使用率有時不會下降,但作為workaround,手動建立一個表再drop後該檢視會重新整理

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26964624/viewspace-2564164/,如需轉載,請註明出處,否則將追究法律責任。

相關文章