表空间使用率

原创 2015年11月20日 15:18:04

统计月使用量,按表空间排序

SELECT d.tablespace_name,  
       to_char(nvl(a.bytes / 1024 / 1024 / 1024, 0), '99,999,990.00') size_g,  
       to_char(nvl(f.bytes, 0) / 1024 / 1024 / 1024, '99,999,990.00') free_g,  
       to_char(nvl((a.bytes-f.bytes) / 1024 / 1024 / 1024, 0), '99,999,990.00')  used_g,
       to_char(nvl((a.bytes - nvl(f.bytes, 0)) / a.bytes * 100, 0), '990.00') || '%' used_pct  
FROM   dba_tablespaces d,  
       (SELECT tablespace_name, SUM(bytes) bytes  
        FROM   dba_data_files  
        GROUP  BY tablespace_name) a,  
       (SELECT tablespace_name, SUM(bytes) bytes  
        FROM   dba_free_space  
        GROUP  BY tablespace_name) f  
WHERE  d.tablespace_name = a.tablespace_name(+)  
       AND d.tablespace_name = f.tablespace_name(+)  
       AND NOT (d.extent_management = 'LOCAL' AND d.contents = 'TEMPORARY')  
ORDER  BY 1;

1.>个人最常用

COL SIZE_G FOR A15
COL FREE_G FOR A15
COL USED_PCT FOR A10
COL TABLESPACE_NAME FOR A30
SELECT d.tablespace_name,
       to_char(nvl(a.bytes / 1024 / 1024 / 1024, 0), '99,999,990.00') size_g,
       to_char(nvl(f.bytes, 0) / 1024 / 1024 / 1024, '99,999,990.00') free_g,
       to_char(nvl((a.bytes - nvl(f.bytes, 0)) / a.bytes * 100, 0), '990.00') || '%' used_pct
FROM   dba_tablespaces d,
       (SELECT tablespace_name, SUM(bytes) bytes
        FROM   dba_data_files
        GROUP  BY tablespace_name) a,
       (SELECT tablespace_name, SUM(bytes) bytes
        FROM   dba_free_space
        GROUP  BY tablespace_name) f
WHERE  d.tablespace_name = a.tablespace_name(+)
       AND d.tablespace_name = f.tablespace_name(+)
       AND NOT (d.extent_management = 'LOCAL' AND d.contents = 'TEMPORARY')
ORDER  BY 4 DESC;

2.>个人第二常用

SELECT A.TABLESPACE_NAME,
          A.BYTES TOTAL,
       B.BYTES USED,
       (B.BYTES) / A.BYTES "USED %"
  FROM SYS.SM$TS_AVAIL A, SYS.SM$TS_USED B, SYS.SM$TS_FREE C
 WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME
   AND A.TABLESPACE_NAME = C.TABLESPACE_NAME;

3.>

SELECT A.TABLESPACE_NAME "表空间名",
       A.TOTAL_SPACE "总空间(G)",
       NVL(B.FREE_SPACE, 0) "剩余空间(G)",
       A.TOTAL_SPACE - NVL(B.FREE_SPACE, 0) "使用空间(G)",
       CASE WHEN A.TOTAL_SPACE=0 THEN 0 ELSE trunc(NVL(B.FREE_SPACE, 0) / A.TOTAL_SPACE * 100, 2) END "剩余百分比%" --避免分母为0
  FROM (SELECT TABLESPACE_NAME, trunc(SUM(BYTES) / 1024 / 1024/1024 ,2) TOTAL_SPACE
          FROM DBA_DATA_FILES
         GROUP BY TABLESPACE_NAME) A,
       (SELECT TABLESPACE_NAME, trunc(SUM(BYTES / 1024 / 1024/1024  ),2) FREE_SPACE
          FROM DBA_FREE_SPACE
         GROUP BY TABLESPACE_NAME) B
 WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME(+)

4.>
 
SELECT A.TABLESPACE_NAME "表空间名",
       A.TOTAL_SPACE "总空间(G)",
       NVL(B.FREE_SPACE, 0) "剩余空间(G)",
       A.TOTAL_SPACE - NVL(B.FREE_SPACE, 0) "使用空间(G)",
       CASE WHEN A.TOTAL_SPACE=0 THEN 0 ELSE trunc(NVL(B.FREE_SPACE, 0) / A.TOTAL_SPACE * 100, 2) END "剩余百分比%" --避免分母为0
  FROM (SELECT TABLESPACE_NAME, trunc(SUM(BYTES) / 1024 / 1024/1024 ,2) TOTAL_SPACE
          FROM DBA_DATA_FILES
         GROUP BY TABLESPACE_NAME) A,
       (SELECT TABLESPACE_NAME, trunc(SUM(BYTES / 1024 / 1024/1024  ),2) FREE_SPACE
          FROM DBA_FREE_SPACE
         GROUP BY TABLESPACE_NAME) B
 WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME(+)
 ORDER BY 5;
5.>
SELECT D.TABLESPACE_NAME "表空间名称",
       SPACE || 'G' "总空间大小(G)",
       BLOCKS "总块数",
       SPACE - NVL (FREE_SPACE, 0) || 'G' "已用空间(G)",
       ROUND ( (1 - NVL (FREE_SPACE, 0) / SPACE) * 100, 2) || '%'
          "使用百分比(%)",
       FREE_SPACE || 'G' "剩余空间(G)"
  FROM (  SELECT TABLESPACE_NAME,
                 ROUND (SUM (BYTES) / (1024 * 1024 * 1024), 2) SPACE,
                 SUM (BLOCKS) BLOCKS
            FROM DBA_DATA_FILES
        GROUP BY TABLESPACE_NAME) D,
       (  SELECT TABLESPACE_NAME,
                 ROUND (SUM (BYTES) / (1024 * 1024 * 1024), 2) FREE_SPACE
            FROM DBA_FREE_SPACE
        GROUP BY TABLESPACE_NAME) F
 WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+) and D.TABLESPACE_NAME='TBS_BW'


版权声明:本文为博主原创文章,未经博主允许不得转载。

UNDO表空间使用率100%,也不要担心

UNDO表空间使用率100%,也不要担心。 UNDO, 表空间 undo_retention设的为900秒是指undo数据留在undo段里面至少要900秒以后才能被覆盖掉。 因为Undo段...
  • babymouse1212
  • babymouse1212
  • 2017年05月02日 10:53
  • 344

oracle 11g表空间使用率统计心得

oracle 11g表空间使用统计本文研究有关oracle表空间统计的相关手段 传统的oracle表空间统计 oracle11g新增表空间统计视图 x$kttets v$filespace_usage...
  • magic5650
  • magic5650
  • 2016年02月05日 17:24
  • 3640

DB2 查看表空间使用率

1. 统计所有节点表空间使用率   select substr(TABLESPACE_NAME,1,20) as TBSPC_NAME,bigint(TOTAL_PAGES * PAGE_SIZE)...
  • xiadingling
  • xiadingling
  • 2016年02月04日 14:02
  • 621

表空间使用率大小

SELECT a.tablespace_name "表空间名",  total "表空间大小",  free "表空间剩余大小",  (total - free) "表空间使用大小",  to...
  • chaoloveyou
  • chaoloveyou
  • 2014年09月16日 11:14
  • 1452

ORACLE查看表空间使用率

之前写程序需要实现一个查询数据库表空间使用率的功能,虽然不知道做它的意义有多大,项目要求就得做。写了一个,只能查到永久表空间,TEMP表空间不知道怎么查询,今天上网找了找,把SQL补充完整了,其实都是...
  • shuiqingtinglin
  • shuiqingtinglin
  • 2010年06月18日 15:10
  • 5935

Oracle表空间使用率过大问题处理方法

查看Oracle数据库内表空间使用情况 扩大表空间的四种方法
  • JohnnySun2015
  • JohnnySun2015
  • 2015年04月27日 12:44
  • 1649

DB2表空间相关知识整理

------------------------------------------2015-07-30------------------------------------------------...
  • killvoon
  • killvoon
  • 2015年08月03日 11:28
  • 368

MS SQL Server查看数据表空间使用情况

exec   sp_MSForEachTable     @precommand=N   create   table   ##(   表名   sysname,   记录数   int,   保留空...
  • wufeng4552
  • wufeng4552
  • 2009年09月09日 15:22
  • 1817

Oracle 统计表空间使用率-经典语句

SELECT TABLESPACE_NAME 表空间,        TO_CHAR(ROUND(BYTES / 1024, 2), '99990.00') || '' 实有,        TO...
  • hproc
  • hproc
  • 2012年03月20日 10:48
  • 3934

SQL Server查看表空间占用情况

查看数据库中各表的占用空间情况:   create table tablesize (name varchar(50),rows int,reserved varchar(50), da...
  • zdc5255555
  • zdc5255555
  • 2013年10月11日 14:53
  • 349
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:表空间使用率
举报原因:
原因补充:

(最多只允许输入30个字)