1、查询表空间使用情况(未考虑自增长情况)
SELECT UPPER(F.TABLESPACE_NAME) "表空间名",D.TOT_GROOTTE_MB "表空间大小(M)",D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') || '%' "使用比",F.TOTAL_BYTES "空闲空间(M)",F.MAX_BYTES "最大块(M)"FROM (SELECT TABLESPACE_NAME,ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTESFROM SYS.DBA_FREE_SPACEGROUP BY TABLESPACE_NAME) F,(SELECT DD.TABLESPACE_NAME,ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MBFROM SYS.DBA_DATA_FILES DDGROUP BY DD.TABLESPACE_NAME) DWHERE D.TABLESPACE_NAME = F.TABLESPACE_NAMEORDER BY 1;
查询表空间使用情况(考虑自增长情况)
SELECT D.TABLESPACE_NAME,CASE SUBSTR(D.TABLESPACE_NAME,1,6)WHEN 'SYSAUX' THEN 'SYSAUX'WHEN 'SYSTEM' THEN 'SYSTEM'WHEN 'UNDOTB' THEN 'UNDO'ELSE 'USER'END TYPE,-- ROUND(D.MAX_SPACE/1024/1024/1024,0)||'GB' "MAX_SPACE",ROUND(D.TOTAL_SPACE/1024/1024,0)||'MB' TOTAL_SPACE,ROUND(F.FREE_SPACE/1024/1024,2)||'MB' FREE,ROUND(AVAILABLE_SPACE/1024/1024/1024,0)||'GB' AVAILABLE_SPACE,D.ONLINE_STATUS,RTRIM(TO_CHAR(ROUND((D.TOTAL_SPACE - F.FREE_SPACE)/D.AVAILABLE_SPACE*100,2),'FM90.99'),'.')||'%' USAGE_RATEFROM (SELECTTABLESPACE_NAME,SUM(BYTES) TOTAL_SPACE,SUM(MAXBYTES) MAX_SPACE,SUM(CASE AUTOEXTENSIBLEWHEN 'YES' THEN MAXBYTES -- 若数据文件为自增长,取MAXBYTESWHEN 'NO' THEN BYTES -- 若数据文件不为自增长,取BYTESEND) AVAILABLE_SPACE,ONLINE_STATUSFROM DBA_DATA_FILESGROUP BY TABLESPACE_NAME,ONLINE_STATUS) D,(SELECT TABLESPACE_NAME,SUM(BYTES) FREE_SPACEFROM DBA_FREE_SPACEGROUP BY TABLESPACE_NAME) FWHERE D.TABLESPACE_NAME = F.TABLESPACE_NAMEORDER BY D.TABLESPACE_NAME;
2 查询数据文件路径等信息
select file_name,autoextensible,maxblocks,increment_by from dba_data_files;
3、增加表空间
- 一个数据文件最大32GB
自增长
alter tablespace 表空间名称 add datafile '数据文件路径' size 10G autoextend on next 2G maxsize 30G;
固定大小(32GB)
alter tablespace 表空间名称 add datafile '数据文件路径' size 32767M autoextend on;