--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...