您的位置:首页 > 数据库 > Oracle

oracle 数据库里查看表空间使用状况

2010-09-21 02:09 465 查看
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
查看系统锁对象的SQL语句

========================
select object_name as 对象名称,s.sid,s.serial#,p.spid as 系统进程号

from v$locked_object l , dba_objects o , v$session s , v$process p

where l.object_id=o.object_id and l.session_id=s.sid and s.paddr=p.addr;

没有被锁定对象?
查看表空间下都有哪些表

===========================
select
 * 
from
 dba_tables 
where
 tablespace_name='表空间名’ 

ALTER DATABASE
DATAFILE 'D:/ORACLE/PRODUCT/10.2.0/ORADATA/XZCG251/DLGIS.ORA' AUTOEXTEND
ON NEXT 100M MAXSIZE UNLIMITED;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息