Chinaunix首页 | 论坛 | 博客
  • 博客访问: 228473
  • 博文数量: 35
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 938
  • 用 户 组: 普通用户
  • 注册时间: 2013-09-12 14:52
文章分类

全部博文(35)

文章存档

2016年(4)

2015年(5)

2014年(16)

2013年(10)

我的朋友

分类: Oracle

2014-04-11 14:44:53

select * from dba_data_files   查询数据库表空间

--查询表空间使用率
select total.tablespace_name,
round(total.MB, 2) as Total_MB,
round(total.MB - free.MB, 2) as Used_MB,
round((1 - free.MB / total.MB) * 100, 2) || '%' as Used_Pct
from (select tablespace_name, sum(bytes) / 1024 / 1024 as MB
from dba_free_space
group by tablespace_name) free,
(select tablespace_name, sum(bytes) / 1024 / 1024 as MB
from dba_data_files
group by tablespace_name) total
where free.tablespace_name = total.tablespace_name;

--------------------------------------------------------------------------
查询表空间(算上自动扩展)
SELECT a.tablespace_name,
               ROUND(a.bytes_alloc / 1048576) megs_alloc,
               ROUND(NVL(b.bytes_free, 0) / 1048576) megs_free,
               ROUND((a.bytes_alloc - NVL(b.bytes_free, 0)) / 1048576) megs_used,
               ROUND((NVL(b.bytes_free, 0) / a.bytes_alloc) * 100) Pct_Free,
               100 - ROUND((NVL(b.bytes_free, 0) / a.bytes_alloc) * 100) Pct_used,
               ROUND(maxbytes / 1048576) MAX,
               ROUND(ROUND((a.bytes_alloc - NVL(b.bytes_free, 0)) / 1048576) /
                     ROUND(maxbytes / 1048576) * 100,
                     2) use_pct
          FROM (SELECT f.tablespace_name,
                       SUM(f.bytes) bytes_alloc,
                       SUM(DECODE(f.autoextensible,
                                  'YES',
                                  f.maxbytes,
                                  'NO',
                                  f.bytes)) maxbytes
                  FROM dba_data_files f
                 GROUP BY tablespace_name) a,
               (SELECT f.tablespace_name, SUM(f.bytes) bytes_free
                  FROM dba_free_space f
                 GROUP BY tablespace_name) b
         WHERE a.tablespace_name = b.tablespace_name(+)
        UNION ALL
        SELECT h.tablespace_name,
               ROUND(SUM(h.bytes_free + h.bytes_used) / 1048576) megs_alloc,
               ROUND(SUM((h.bytes_free + h.bytes_used) -
                         NVL(p.bytes_used, 0)) / 1048576) megs_free,
               ROUND(SUM(NVL(p.bytes_used, 0)) / 1048576) megs_used,
               ROUND((SUM((h.bytes_free + h.bytes_used) -
                          NVL(p.bytes_used, 0)) /
                     SUM(h.bytes_used + h.bytes_free)) * 100) Pct_Free,
               100 - ROUND((SUM((h.bytes_free + h.bytes_used) -
                                NVL(p.bytes_used, 0)) /
                           SUM(h.bytes_used + h.bytes_free)) * 100) pct_used,
               ROUND(SUM(DECODE(f.autoextensible,
                                'YES',
                                f.maxbytes,
                                'NO',
                                f.bytes) / 1048576)) MAX,
               ROUND(SUM(NVL(p.bytes_used, 0)) / 1048576) /
               ROUND(SUM(DECODE(f.autoextensible,
                                'YES',
                                f.maxbytes,
                                'NO',
                                f.bytes) / 1048576)) use_pct
          FROM sys.v_$TEMP_SPACE_HEADER h,
               sys.v_$Temp_extent_pool p,
               dba_temp_files f
         WHERE p.file_id(+) = h.file_id
           AND p.tablespace_name(+) = h.tablespace_name
           AND f.file_id = h.file_id
           AND f.tablespace_name = h.tablespace_name
         GROUP BY h.tablespace_name;

阅读(1846) | 评论(0) | 转发(0) |
0

上一篇:oracle表空间

下一篇:AIX下创建用户和组

给主人留下些什么吧!~~