1. 程式人生 > >如何檢視oracle的表空間使用情況

如何檢視oracle的表空間使用情況

查詢當前資料庫有哪些表

select * from tabs;

oracle 查詢表的大小,表空間的使用情況,預設表空間
–檢視某張表佔用磁碟空間大小 ( 表名大寫 )

Select Segment_Name,Sum(bytes)/1024/1024 From User_Extents Group By Segment_Name having Segment_Name='表名';

檢視使用者預設表空是那個

select username,default_tablespace from dba_users where username='SCOTT';

–表空間空閒

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

–檢視資料庫表空間的使用情況

select b.file_name 物理檔名,
       b.tablespace_name 表空間,
       b.bytes / 1024 / 1024 大小M,
       (b.bytes - sum(nvl(a.bytes, 0))) / 1024 / 1024 已使用M,
       substr((b.bytes - sum
(nvl(a.bytes, 0))) / (b.bytes) * 100, 1, 5) 利用率 from dba_free_space a, dba_data_files b where a.file_id = b.file_id group by b.tablespace_name, b.file_name, b.bytes order by b.tablespace_name

–編輯擴大表空間,將表空間擴大到2M

alter database datafile '/oradata/rszpdb/TEST1.dbf' resize 2m;

若不知道 ‘/oradata/rszpdb/TEST1.dbf’ 這個地址,
可使用一下語句查詢:

select b.file_name 物理檔名 from dba_free_space a, dba_data_files b
 where a.file_id = b.file_id and b.tablespace_name = '表空間名'
 group by b.tablespace_name, b.file_name, b.bytes

–通過擴大資料檔案來增大表空間,將表空間 RCMT_TEST 擴大1G (實際用)

 alter tablespace RCMT_TEST add datafile '/oradata/rszpdb/RCMT_TEST2.dbf' size 1G;
/oradata/rszpdb/RCMT_TEST2.dbf:不能跟原來的資料檔名稱一樣

(原來:/oradata/rszpdb/RCMT_TEST1.dbf)
RCMT_TEST:表空間
1G:擴大1G
在原來資料檔案 RCMT_TEST1.dbf 所擁有的空間使用完之後,會自動使用 RCMT_TEST2.dbf 的空間。