ORACLE空间使用情况统计的SQL

本文提供了一种查询Oracle数据库中各表空间使用情况的方法,包括已分配、已使用及空闲的空间大小,并通过具体SQL语句展示如何计算这些指标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/* Formatted on 2012/10/9 10:24:19 (QP5 v5.114.809.3010) */
SELECT   a.tablespace_name,
         a.bytes_alloc/1024/1024 "megs_alloc(M)",
         NVL (b.bytes_free, 0)/1024/1024 "megs_free(M)",
         (a.bytes_alloc - NVL (b.bytes_free, 0))/1024/1024 "megs_used(M)",
         ROUND ( (NVL (b.bytes_free, 0) / a.bytes_alloc) * 100, 2) pct_free,
         100 - ROUND ( (NVL (b.bytes_free, 0) / a.bytes_alloc) * 100, 2)
            pct_used
  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,
           SUM (h.bytes_free + h.bytes_used) megs_alloc,
           SUM ( (h.bytes_free + h.bytes_used) - NVL (p.bytes_used, 0))
              megs_free,
           SUM (NVL (p.bytes_used, 0)) megs_used,
           ROUND (
              (SUM ( (h.bytes_free + h.bytes_used) - NVL (p.bytes_used, 0))
               / SUM (h.bytes_used + h.bytes_free))
              * 100,
              2
           )
              pct_free,
           100
           - ROUND (
                (SUM ( (h.bytes_free + h.bytes_used) - NVL (p.bytes_used, 0))
                 / SUM (h.bytes_used + h.bytes_free))
                * 100,
                2
             )
              pct_used
    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, f.maxbytes
ORDER BY   pct_used DESC

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值