-----------ORACLE查看相关表空间情况
--1.第一种查询
select dbf.tablespace_name,dbf.totalspace "总量(M)",
dfs.freespace "剩余总量(M)",
dbf.totalblocks as 总块数,
dfs.freeblocks "剩余块数",
trunc((dfs.freespace / dbf.totalspace) * 100,2)||'%' "空闲比例"
from
(select t.tablespace_name,
sum(t.bytes) / 1024 / 1024 totalspace,
sum(t.blocks) totalblocks
from dba_data_files t
group by t.tablespace_name) dbf,
(select tt.tablespace_name,
sum(tt.bytes) / 1024 / 1024 freespace,
sum(tt.blocks) freeblocks
from dba_free_space tt
group by tt.tablespace_name) dfs
where trim(dbf.tablespace_name) = trim(dfs.tablespace_name);
--2.第二种查询
select total.name "tablespace name",
free_space,(total_space - free_space) used_space,total_space
from (select tablespace_name, sum(bytes / 1024 / 1024) free_space
from sys.dba_free_space group by tablespace_name) free,
(select b.name,sum(bytes / 1024 / 1024) total_space from sys.v_$datafile a,
sys.v_$tablespace b where a.ts# = b.ts#
group by b.name) total where free.tablespace_name = total.name;
--3.第三种查询 查询出dbf文件在什么地方
select tablespace_name, file_id, file_name,
round(bytes/(1024*1024),0) total_space
from dba_data_files
order by tablespace_name;
----------ORACLE扩展表空间
扩展表空间的3种
1手动增加数据文件大小
alter database datafile '/home/oracle/ts01.dbf' resize 100m;
2把表空间设置为自动扩展
alter database datafile '/home/oracle/ts01.dbf' autoextend on next 5m maxsize unlimited;
3 往表空间增加数据文件
alter tablespace ts01 add datafile '/home/oracle/ts02.dbf' size 2m;
更改表空间名字
alter tablespace ts01 rename to ts02;
表空间使用率
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;
表空间的存放位置
select file_name, tablespace_name from dba_data_files;