查詢tablespace實際使用量與剩餘空間(free space)以及db或table實際資料量問題
到某表空間所有段的加和值,即按表空間分組統計
dba_data_files.bytes-dba_free_space.bytes=dba_segments.bytes
dba_segments中可查詢已分配的段空間大小(dba_extents則是dba_segments中的詳表,segment是由多個extent組成的),表空間總
dba_data_files.bytes-dba_free_space.bytes=dba_segments.bytes
dba_segments中可查詢已分配的段空間大小(dba_extents則是dba_segments中的詳表,segment是由多個extent組成的),表空間總
大小可查詢dba_data_files來獲得,剩餘大小可查詢dba_free_space獲得,這兩者相減就是已分配掉的空間大小可以透過對錶分析後查詢dba_tables(下面多個+1就是段頭塊了)dba_tables.blocks+ dba_tables.empty_blocks+1=user_extents.blocks=user_segments.blocks
另外:
平均行長*總行數=表資料量大小
這裡是資料量,oracle分配給該表的空間自然要比這個大,而且還要受到到pctfree的限制以及該表是否有經過刪除,例如delete很多記錄,空間是不會釋放的,分配的空間就浪費更多
一種極端就是表的引數設定pctfree=0 initial跟next也設定很小例如都是16K,然後插入資料
例如10M的資料量,然後對錶進行分析,那麼這種情況空間利用率很高,按上面公式計算,結果
就會跟dba_segments分配空間的值很接近了,幾乎相等了。
另外:
平均行長*總行數=表資料量大小
這裡是資料量,oracle分配給該表的空間自然要比這個大,而且還要受到到pctfree的限制以及該表是否有經過刪除,例如delete很多記錄,空間是不會釋放的,分配的空間就浪費更多
一種極端就是表的引數設定pctfree=0 initial跟next也設定很小例如都是16K,然後插入資料
例如10M的資料量,然後對錶進行分析,那麼這種情況空間利用率很高,按上面公式計算,結果
就會跟dba_segments分配空間的值很接近了,幾乎相等了。
大概量演算法:
查詢tablespace使用量:select tablespace_name,sum(bytes)/1024/1024 from dba_extents where tablespace_name='MIS_TABLESPACE' group by tablespace_name
查詢tablespace剩餘空間:select tablespace_name,round(sum(bytes)/1024/1024,2) "FREE_MB" from dba_free_space group by tablespace_name
查詢table所佔硬碟的大小:select table_name, blocks * (select value from v$parameter where name='db_block_size')/1024/1024 as size_mb from user_tables where table_name=TABLE_NAME
查詢tablespace剩餘空間:select tablespace_name,round(sum(bytes)/1024/1024,2) "FREE_MB" from dba_free_space group by tablespace_name
查詢table所佔硬碟的大小:select table_name, blocks * (select value from v$parameter where name='db_block_size')/1024/1024 as size_mb from user_tables where table_name=TABLE_NAME
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-84793/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle 剩餘表空間查詢慢,解決辦法Oracle
- SQL查詢table或index異常增長問題 - space_usage (show_space)SQLIndex
- 表空間使用量查詢
- MYSQL中查詢資料庫設定多大,剩餘空間是多少(轉)MySql資料庫
- 解決Ubuntu虛擬機器佔用空間與實際空間不符問題Ubuntu虛擬機
- dba_free_space查詢速度慢問題解決
- boot分割槽剩餘空間不足boot
- parted掛載硬碟剩餘空間硬碟
- 詳細顯示資料表空間的使用率與剩餘空間的SQLSQL
- linux檢視剩餘磁碟空間Linux
- Tablespace Fragmentation - 表空間碎片問題Fragment
- Oracle ASM Free Space TableOracleASM
- 怎麼檢視oracle表空間,剩餘大小,表空間利用Oracle
- 【TABLESPACE】Oracle表空間最佳實踐Oracle
- 並查集在實際問題中的應用並查集
- 查詢使用表空間的TABLE,INDEX,INDEX SUBPARTITIONIndex
- 表空間資料檔案建立大小與實際使用大小以及rman備份集的關係系列一
- 前端-如何始終平均分配剩餘空間前端
- LINUX檢視目錄剩餘空間的命令Linux
- 『Android』 獲取檔案系統剩餘空間Android
- 根據源庫表空間實際使用建立表空間指令碼指令碼
- free命令顯示的記憶體與實際不符記憶體
- 查詢表空間容量時顯示大小為空的問題
- 查詢資料量的大小
- 檢視asm磁碟組剩餘空間的正確方法ASM
- 【TABLESPACE】Oracle資料庫預設永久表空間的查詢及刪除方法Oracle資料庫
- AD7606實際取樣率輸出資料量偏小
- 查詢所有表空間的總容量、已經使用、剩餘、已經使用的百分比,增加容量!
- Oracle 10g Shrink Table - Shrink Space 收縮空間Oracle 10g
- SQLAlchemy in 查詢空列表問題分析SQL
- linux下檢視分割槽資訊和剩餘空間大小Linux
- 呼叫API函式得到磁碟上剩餘空間的值 (轉)API函式
- 實際專案中遇到的問題
- JF實際開發中的問題
- DELETE TABLE資料後,查詢變慢,問題處理delete
- show_space 查詢表資料塊碎片問題 - show_space 結果解釋 7
- 【轉】 在aix裡面檢視實際的磁碟空間AI
- aix裡面怎麼檢視實際的磁碟空間AI