查詢表空間總大小(dba_data_files和dba_segments,dba_free_space區別)


1, dba_data_files,dba_segments,dba_free_space
得出結論:一般情況下(沒有drop表的時候):dba_data_files bytes = (dba_segments bytes + dba_free_space bytes)

實驗:

SQL> Select sum(bytes)/1024/1024/1024 from dba_segments;

SUM(BYTES)/1024/1024/1024
-------------------------
           1.58441162

SQL> select sum(bytes)/1024/1024/1024 from dba_free_space;

SUM(BYTES)/1024/1024/1024
-------------------------
           .323669434

SQL> select sum(bytes)/1024/1024/1024 from dba_data_files;

SUM(BYTES)/1024/1024/1024
-------------------------
        1.9140625
2, delete,truncate,drop對空間的變化影響
delete表數據,對上述3個視圖查詢沒有任何變化,滿足上述相等原則.
truncate表數據,表空間一次性回收,dba_free_space增加,dba_segments減少,讓滿足上述相等原則.
drop表,表空間一次性回收,但dba_segment會多出個回收站,但實際上dba_free_segment也把回收站的那部分空間計算在內了,所以回收站的內容實際也是可以使用的部分,表面上看這個等式不成立了,但實質上做了些改變,改為(有drop時):dba_data_files bytes = (dba_segments bytes + dba_free_space bytes- dba_segment回收站部分)

 

3.還可以直接去數據文件所在目錄直接 du -sh查看數據文件大小


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM