檢視表空間使用磁碟狀態

2021-06-14 18:57:08 字數 2564 閱讀 1532

--1檢視表空間已經使用的百分比

sql**  

select   a.tablespace_name,a.bytes/1024/1024 "sum mb",(a.bytes-b.bytes)/1024/1024   "used mb",b.bytes/1024/1024 "free mb",round(((a.bytes-b.bytes)/a.bytes)*100,2) "percent_used"

from

(select tablespace_name,sum(bytes) bytes from dba_data_files group

by tablespace_name)   a,  

(select tablespace_name,sum(bytes) bytes,max(bytes) largest from dba_free_space group

by tablespace_name)   b  

where   a.tablespace_name=b.tablespace_name  

order

by   ((a.bytes-b.bytes)/a.bytes)   desc

「sum mb」表示表空間所有的資料檔案總共在作業系統占用磁碟空間的大小

比如:test表空間有2個資料檔案,datafile1為300mb,datafile2為400mb,那麼test表空間的「sum mb」就是700mb

「userd mb」表示表空間已經使用了多少

「free mb」表示表空間剩餘多少

「percent_user」表示已經使用的百分比

--2比如從1中檢視到mlog_norm_space表空間已使用百分比達到90%以上,可以檢視該錶空間總共有幾個數

據檔案,每個資料檔案是否自動擴充套件,可以自動擴充套件的最大值。

sql**  

select   file_name,tablespace_name,bytes/1024/1024 "bytes mb",maxbytes/1024/1024 "maxbytes mb"

from   dba_data_files  

where tablespace_name='mlog_norm_space';  

--2.1 檢視 *** 表空間是否為自動擴充套件

sql**  

select file_id,file_name,tablespace_name,autoextensible,increment_by from dba_data_files order

by file_id desc;  

--3比如mlog_norm_space表空間目前的大小為19gb,但最大每個資料檔案只能為20gb,資料檔案快要寫滿,可以增加表空間的資料檔案

用作業系統unix、linux中的df   -g命令(檢視下可以使用的磁碟空間大小)

獲取建立表空間的語句:

sql**  

select   dbms_metadata.get_ddl('tablespace','mlog_norm_space')   from   dual;  

--4確認磁碟空間足夠,增加乙個資料檔案

sql**  

alter   tablespace   mlog_norm_space  

add   datafile   '/oracle/oms/oradata/mlog/mlog_norm_data001.dbf'

size   10m   autoextend   on   maxsize   20g  

--5驗證已經增加的資料檔案

sql**  

select   file_name,file_id,tablespace_name   from   dba_data_files  

where   tablespace_name='mlog_norm_space'

--6如果刪除表空間資料檔案,如下:

sql**  

alter   tablespace   mlog_norm_space  

drop    datafile '/oracle/oms/oradata/mlog/mlog_norm_data001.dbf'

7就擴充套件該錶空間,為其增加更多的儲存空間。有三種方法:

1. 增加資料檔案

sql> alter tablespace sp01 add datafile 『d:\test\sp01.dbf』 size 20m;

2. 增加資料檔案的大小

sql> alter tablespace 表空間名 『d:\test\sp01.dbf』 resize20m;

這裡需要注意的是資料檔案的大小不要超過500m。

3. 設定檔案的自動增長。

sql> alter tablespace 表空間名 『d:\test\sp01.dbf』 autoextendon next 10m maxsize 500m; 

ORACLE檢視表空間使用率

之前寫程式需要實現乙個查詢資料庫表空間使用率的功能,雖然不知道做它的意義有多大,專案要求就得做。寫了乙個,只能查到永久表空間,temp表空間不知道怎麼查詢,今天上網找了找,把sql補充完整了,其實都是找來現有的資源用的,收藏一下。select from select a.tablespace nam...

檢視表空間使用情況

select upper a.tablespace name 表空間名 d.tot grootte mb 表空間大小 m d.tot grootte mb a.total bytes 已使用空間 m to char round d.tot grootte mb a.total bytes d.tot...

檢視表的空間使用情況

在 中,可以直接在表的屬性中看到表的大小和索引檔案大小,而後 中卻不能直接看到,需要用以下 來實現,其實o.name like 是用來篩選表的名字的 if not exists select from dbo.sysobjects where id object id n dbo tablespac...