Q1:怎么察看Oracle 数据库表空间的使用情况
oracle 数据库里查看表空间使用状况;
oracle表空间的事情状况要经常查看,一般空闲比例过低的时候就应该考虑增大表看空间了。查看方法如下SQL:
方法一:
select dbf.tablespace_name,
dbf.totalspace "总量(M)",
dbf.totalblocks as 总块数,
dfs.freespace "剩余总量(M)",
dfs.freeblocks "剩余块数",
(dfs.freespace / dbf.totalspace) * 100 "空闲比例"
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)
方法二:
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
当发现有的表空间不够的错误时,处理如下:
1:找出该表空间对应的数据文件及路径
select * from dba_data_files t
where t.tablespace_name = ARD
2:增大数据文件
alter database datafile 全路径的数据文件名称 resize ***M
3:增加数据文件
alter tablespace 表空间名称
add datafile 全路径的数据文件名称 ***M
注解:表空间尽量让free百分比保持在10%以上,如果低于10%就增加datafile或者resizedatafile,一般数据文件不要超过2G
Q2:如何查看oracle表空间使用情况
查看所有表空间使用情况 : select b.file_id 文件ID号, b.tablespace_name 表空间名, b.bytes/1024/1024M字节数, (b.bytes-sum(nvl(a.bytes,0)))/1024/1024M 已使用, sum(nvl(a.bytes,0))/1024/1024M 剩余空间, 100 - sum(nvl(a.by...
Q3:如何查看oracle表空间大小的使用情况
1. 全部表空间的大小
select tablespace_name, sum(bytes)/1024/1024 from dba_data_files group by tablespace_name;
TABLESPACE_NAME SUM(BYTES)/1024/1024、-------------------- --------------------
UNDOTBS1 65、SYSAUX 520
USERS 6、SYSTEM 680
EXAMPLE 100
2. 空闲表空间大小
select tablespace_name, sum(bytes)/1024/1024 from dba_free_space group by tablespace_name;
TABLESPACE_NAME SUM(BYTES)/1024/1024、-------------------- --------------------
SYSAUX 34、UNDOTBS1 1、USERS 1、SYSTEM 4、EXAMPLE 22、
3. 已使用空间可以这样计算
select a.tablespace_name, total, free, total-free as used from
(select tablespace_name, sum(bytes)/1024/1024 as total from dba_data_files group by tablespace_name) a,
(select tablespace_name, sum(bytes)/1024/1024 as free from dba_free_space group by tablespace_name) b
where a.tablespace_name = b.tablespace_name;
TABLESPACE_NAME TOTAL FREE USED
-------------------- ---------- ---------- ----------
SYSAUX 520 33.6875 486.3125、UNDOTBS1 65 1 64、USERS 6.25 1.25 5、SYSTEM 680 3.5 676.5、EXAMPLE 100 21.5625 78.4375、
更具体的sql语句:
select a.tablespace_name, total, free, total-free as used, substr(free/total * 100, 1, 5) as "FREE%", substr((total - free)/total * 100, 1, 5) as "USED%" from
(select tablespace_name, sum(bytes)/1024/1024 as total from dba_data_files group by tablespace_name) a,
(select tablespace_name, sum(bytes)/1024/1024 as free from dba_free_space group by tablespace_name) b
where a.tablespace_name = b.tablespace_name
order by a.tablespace_name;
Q4:oracle 数据库怎么查看temp表空间使用情况
查看临时表空间的使用情况(GV_$TEMP_SPACE_HEADER视图必须在sys用户下才能查询)
GV_$TEMP_SPACE_HEADER视图记录了临时表空间的使用大小与未使用的大小
dba_temp_files视图的bytes字段记录的是临时表空间的总大小: