如何檢視oracle表空間已使用大小

時間 2021-10-27 04:37:38

1樓:匿名使用者

檢視所有表空間使用情況 :

select

b.file_id 檔案id號,

b.tablespace_name 表空間名,

b.bytes/1024/1024||'m'位元組數,

(b.bytes-sum(nvl(a.bytes,0)))/1024/1024||'m' 已使用,

sum(nvl(a.bytes,0))/1024/1024||'m' 剩餘空間,

100 - sum(nvl(a.bytes,0))/(b.bytes)*100 佔用百分比

from dba_free_space a,dba_data_files b

where a.file_id=b.file_id

group by b.tablespace_name,b.file_id,b.bytes

order by b.file_id;

備註:建議用系統管理員dba許可權進行檢視。

2樓:

1. 檢視所有表空間大小

sql> select tablespace_name,sum(bytes)/1024/1024 from dba_data_files

2 group by tablespace_name;

2. 已經使用的表空間大小

sql> select tablespace_name,sum(bytes)/1024/1024 from dba_free_space

2 group by tablespace_name;

3. 所以使用空間可以這樣計算

select a.tablespace_name,total,free,total-free used from

( select tablespace_name,sum(bytes)/1024/1024 total from dba_data_files

group by tablespace_name) a,

( select tablespace_name,sum(bytes)/1024/1024 free from dba_free_space

group by tablespace_name) b

where a.tablespace_name=b.tablespace_name;

4. 下面這條語句檢視所有segment的大小。

select segment_name,sum(bytes)/1024/1024 from user_extents group by segment_name

5. 還有在命令**況下如何將結果放到一個檔案裡。

sql> spool out.txt

sql> select * from v$database;

sql> spool off

怎麼察看oracle 資料庫表空間的使用情況

3樓:小丁創業

檢視的方法和詳細的操作步驟如下:

1、首先,因為oracle在linux系統下執行,所以必須連線到linux系統,如下圖所示,然後進入下一步。

2、其次,完成上述步驟後,連線成功,進入oracle控制檯。

輸入命令「sqlplus / as sysdba」,如下圖所示,然後進入下一步。

3、接著,完成上述步驟後,在sql命令列上,輸入以下**,如下圖所示,然後進入下一步。

4、最後,完成上述步驟後,就可以檢視相應的結果了,如下圖所示。這樣,問題就解決了。

4樓:尋萍者

查詢表空間剩餘容量

select tablespace_name,sum(bytes)/1024/1024  from dba_free_space group by tablespace_name;

查詢表空間總大小

select tablespace_name,sum(bytes)/1024/1024 from dba_data_files group by tablespace_name;

5樓:匿名使用者

oracle 資料庫裡檢視錶空間使用狀況;

oracle表空間的事情狀況要經常檢視,一般空閒比例過低的時候就應該考慮增大表看空間了。檢視方法如下sql:

方法一:

select dbf.tablespace_name,

dbf.totalspace "總量(m)",

dbf.totalblocks as 總塊數,

dfs.freespace "剩餘總量(m)",

dfs.freeblocks "剩餘塊數",

(dfs.freespace / dbf.totalspace) * 100 "空閒比例"

from (select t.tablespace_name,

sum(t.bytes) / 1024 / 1024 totalspace,

sum(t.blocks) totalblocks

from dba_data_files t

group by t.tablespace_name) dbf,

(select tt.tablespace_name,

sum(tt.bytes) / 1024 / 1024 freespace,

sum(tt.blocks) freeblocks

from dba_free_space tt

group by tt.tablespace_name) dfs

where trim(dbf.tablespace_name) = trim(dfs.tablespace_name)

方法二:

select total.name "tablespace name",

free_space, (total_space-free_space) used_space, total_space

from

(select tablespace_name, sum(bytes/1024/1024) free_space

from sys.dba_free_space

group by tablespace_name

) free,

(select b.name, sum(bytes/1024/1024) total_space

from sys.v_$datafile a, sys.v_$tablespace b

where a.ts# = b.ts#

group by b.name

) total

where free.tablespace_name = total.name

當發現有的表空間不夠的錯誤時,處理如下:

1:找出該表空間對應的資料檔案及路徑

select * from dba_data_files t

where t.tablespace_name = 'ard'

2:增大資料檔案

alter database datafile '全路徑的資料檔名稱' resize ***m

3:增加資料檔案

alter tablespace 表空間名稱

add datafile '全路徑的資料檔名稱' ***m

註解:表空間儘量讓free百分比保持在10%以上,如果低於10%就增加datafile或者resizedatafile,一般資料檔案不要超過2g

6樓:

系統管理員登陸:

select a.tablespace_name,total,free,total-free used from

( select tablespace_name,sum(bytes)/1024/1024/1024 total from dba_data_files

group by tablespace_name) a,

( select tablespace_name,sum(bytes)/1024/1024/1024 free from dba_free_space

group by tablespace_name) b

where a.tablespace_name=b.tablespace_name;

怎麼檢視oracle中某個表空間下所有表的大小

用如下語句查詢 select segment name,tablespace name,bytes b,bytes 1024 kb,bytes 1024 1024 mb from user segments where segment type table and tablespace name u...

檢視資料庫建立了哪些表空間oracle

檢視oracle中表空間需要用具有dba許可權的使用者使用以下語句 select distinct tablespace name from dba data files 查詢結果 另外,可通過其他方法檢視一下oracle中表空間的使用率,語句如下 select total.tablespace n...

Oracle中空的user表空間有多大。如何刪除表空間中所有表的資料,只保留表結構

笹緗 如果你沒有給某使用者指定預設表空間,那麼那個使用者的表空間使用的是系統表空間,系統表空間的檔案肯定不能全部刪的,一個表空間可以對應多個使用者,如果是自建的表空間,只需在指定其為預設表空間的每個使用者下執行一個函式即可。附函式 我用的遊標 declare vsql varchar2 200 cu...