一.oracle查看资源使用情况

1.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_bytes
         from sys.dba_free_space
        group by tablespace_name) f,
         (select dd.tablespace_name,
                 round(sum(dd.bytes) / (1024 * 1024), 2) tot_grootte_mb
            from sys.dba_data_files dd
           group by dd.tablespace_name) d
where d.tablespace_name = f.tablespace_name
order by 1;

1.2 查看空间占用多的表或索引

----登录表空间对象查看每个表占用表空间大小;
SELECT
    segment_name 对象,
    segment_type 对象类型,
    bytes / 1024 / 1024 MB,
    tablespace_name 表空间名称
FROM
    user_segments
ORDER BY
    bytes DESC;

1.3 查看用户下各表所占的空间

select OWNER, t.segment_name, t.segment_type, sum(t.bytes / 1024 / 1024) MB
from dba_segments t
where t.owner = 'YAJWMS'
and t.segment_type='TABLE'
group by OWNER, t.segment_name, t.segment_type
order by MB desc;

二、表、表空间、用户的关系查询

2.1 查看表空间有哪些用户的数据

select distinct owner from dba_segments where tablespace_name ='&TABLE_NAME';

2.2 查看表空间里有哪些表;

select TABLE_NAME,TABLESPACE_NAME from dba_tables where TABLESPACE_NAME='&TABLE_NAME';

2.3 查看用户属于哪个表空间;

select username,default_tablespace from dba_users  where username='YAJWMS';

2.4 查看表属于哪个表空间及用户对象;

select owner,tablespace_name from dba_tables where table_name='ET_HD_ORDER';

2.5 查看表空间的数据文件路径;

select * from dba_data_files t where t.tablespace_name = 'APPD'

三、表空间的扩展

3.1 方案一扩展表空间

---扩展表空间大小
alter database datafile '+YAJDATA/yianju/datafile/appd.dbf' resize 500M
----自增长设置;
alter database datafile '+YAJDATA/yianju/datafile/appd.dbf' autoextend onnext 50m maxsize 500m;
---增加数据文件;
alter tablespace `表空间名字` add datafile '+YAJDATA/yianju/datafile/appd.dbf'  size 500M;
alter tablespace `表空间名字` add datafile '+YAJDATA/yianju/datafile/appd.dbf'  size 500M autoextend on; 

3.2 方案二移动至其它表空间

alter table ins.app_iops_dev_daily_nj move tablespace TBS_OSSMOB_ANDROID;
alter index index_name rebuild tablespace tablespace_name;--如果有索引的话必须重建索引

表空间尽量让free百分比保持在10%以上,如果低于10%就增加datafile或者resize datafile,一般数据文件不要超过2G


MothurView
7 声望1 粉丝