一、什么是表空间
二、表空间大小的查看
2.1)
分配给用户表的物理空间数量,而不管空间是否被使用。
select SEGMENT_NAME,Sum(bytes)/1024/1024 as MB
from User_Extents
whereSEGMENT_TYPE='TABLE' or SEGMENT_TYPE='INDEX'
group by SEGMENT_NAME
order by MB desc;
2.2) 查看系统中所有表空间的总空间、可用空间、已用空间及利用率
select t1,z*(1.0)/1024/1024,(z-s)/1024/1024,s/1024/1024,ROUND((z-s)/z*100,2)
from
(select tablespace_name t1,Sum(bytes) s from DBA_FREE_SPACE Group by tablespace_name),
(select tablespace_name t2,Sum(bytes) z from DBA_DATA_FILES Group by tablespace_name)
where t1 = t2;
三、表空间大小的修改
查看是否可自动扩展
select TABLESPACE_NAME,AUTOEXTENSIBLE,INCREMENT_BY
from
DBA_DATA_FILES;
如果AUTOEXTENSIBLE为YES的话,则说明表空间可自动扩展,以INCREMENT_BY的大小增长
如果AUTOEXTENSIBLE为NO的话,则可用以下四种方式修改表空间的大小:
3.1)
给表空间增加数据文件
ALTER TABLESPACE app_data ADD DATAFILE
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF' SIZE 50M;
3.2)新增数据文件,并且允许数据文件自动增长
ALTER TABLESPACE app_data ADD DATAFILE
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP04.DBF' SIZE 50M
AUTOEXTEND ON NEXT 5M MAXSIZE 100M;
3.3)允许已存在的数据文件自动增长
ALTER DATABASE DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF'
AUTOEXTEND ON NEXT 5M MAXSIZE 100M;
3.4)改变已存在数据文件的大小
ALTER DATABASE DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP02.DBF'
RESIZE 100M;
ALTER TABLESPACE app_data ADD DATAFILE
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF' SIZE 50M;
3.2)新增数据文件,并且允许数据文件自动增长
ALTER TABLESPACE app_data ADD DATAFILE
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP04.DBF' SIZE 50M
AUTOEXTEND ON NEXT 5M MAXSIZE 100M;
3.3)允许已存在的数据文件自动增长
ALTER DATABASE DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF'
AUTOEXTEND ON NEXT 5M MAXSIZE 100M;
3.4)改变已存在数据文件的大小
ALTER DATABASE DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP02.DBF'
RESIZE 100M;