1: --查询表空间使用情况

   2: SELECT Upper(F.TABLESPACE_NAME)         "表空间名",

   3:        D.TOT_GROOTTE_MB                 "表空间大小(M)",

   4:        D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",

   5:        To_char(Round(( D.TOT_GROOTTE_MB - F.TOTAL_BYTES ) / D.TOT_GROOTTE_MB * 100, 2), '990.99')

   6:        || '%'                           "使用比",

   7:        F.TOTAL_BYTES                    "空闲空间(M)",

   8:        F.MAX_BYTES                      "最大块(M)",

   9:        D.AUTOEXTENSIBLE                 "是否自增长",

  10:        D.INCREMENTSIZE                  "自增长大小(M)"

  11: FROM   (SELECT TABLESPACE_NAME,

  12:                Round(Sum(BYTES) / ( 1024 * 1024 ), 2) TOTAL_BYTES,

  13:                Round(Max(BYTES) / ( 1024 * 1024 ), 2) MAX_BYTES

  14:         FROM   SYS.DBA_FREE_SPACE

  15:         GROUP  BY TABLESPACE_NAME) F,

  16:        (SELECT DD.TABLESPACE_NAME,

  17:                Round(Sum(DD.BYTES) / ( 1024 * 1024 ), 2) TOT_GROOTTE_MB,

  18:                AUTOEXTENSIBLE,

  19:                --INCREMENT_BY的单位是数据块的大小。数据块大小一般为默认8k

  20:                Round(INCREMENT_BY * (select value/1024 from v$parameter where name='db_block_size')/1024, 2) INCREMENTSIZE

  21:         FROM   SYS.DBA_DATA_FILES DD

  22:         GROUP  BY DD.TABLESPACE_NAME,AUTOEXTENSIBLE,INCREMENT_BY) D

  23: WHERE  D.TABLESPACE_NAME = F.TABLESPACE_NAME

  24: ORDER  BY  "表空间名"

显示结果如下:

参考:https://www.cnblogs.com/xwdreamer/p/3511047.html

自己进行了一些优化,根据表空间的创建时间进行排序。在优化时之所以没有使用三表直接联合查询(from a,b,c where a.xx=b.xx and b.xx=c.xx的方式),是为了提高查询效率。

SELECT Upper(A.TABLESPACE_NAME) "表空间名",
D.TOT_GROOTTE_MB "表空间大小(M)",
D.TOT_GROOTTE_MB - A.TOTAL_BYTES "已使用空间(M)",
To_char(Round((D.TOT_GROOTTE_MB - A.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,
2),
'990.99') || '%' "使用比",
A.TOTAL_BYTES "空闲空间(M)",
A.MAX_BYTES "最大块(M)",
D.AUTOEXTENSIBLE "是否自增长",
D.incrementSize "自增长大小(M)",
D.CREATE_TIME "创建时间"
FROM (select T.TABLESPACE_NAME,
Round(Sum(T.BYTES) / (1024 * 1024), 2) AS TOTAL_BYTES,
Round(Max(T.BYTES) / (1024 * 1024), 2) AS MAX_BYTES
from SYS.DBA_FREE_SPACE t
group by t.TABLESPACE_NAME) A,
(SELECT B.autoextensible,
Round(Sum(B.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB,
Round(B.increment_by *
(select value
from v$parameter
where name = 'db_block_size') / (1024 * 1024),
2) AS incrementSize,--自增长大小为数据库中数据块的个数,一个数据块一般为8k
B.TABLESPACE_NAME,
min(C.CREATION_TIME) CREATE_TIME--获取创建时间,如果有多个数据文件,获取到最初时间
FROM SYS.DBA_DATA_FILES B, v$DATAFILE C
WHERE B.file_id = C.FILE#
group by B.TABLESPACE_NAME, B.autoextensible, B.increment_by) D
WHERE A.TABLESPACE_NAME = D.TABLESPACE_NAME
order by D.CREATE_TIME;

显示结果如下:

增加使用该表空间的用户信息:

--1查询表空间以及其使用情况以及对应用户
select zzz.TABLESPACE_NAME "表空间名",
zzz.TOT_GROOTTE_MB "表空间大小(M)",
zzz.incrementSize "自增长大小(M)",
zzz.use_percentage "使用比",
zzz.CREATE_TIME "创建时间",
xxx.all_users "用户名"
from (SELECT A.TABLESPACE_NAME,
D.TOT_GROOTTE_MB,
D.TOT_GROOTTE_MB - A.TOTAL_BYTES,
To_char(Round((D.TOT_GROOTTE_MB - A.TOTAL_BYTES) /
D.TOT_GROOTTE_MB * 100,
2),
'990.99') || '%' use_percentage,
A.TOTAL_BYTES freesize,
A.MAX_BYTES maxblock,
D.AUTOEXTENSIBLE,
D.incrementSize,
D.CREATE_TIME
FROM (select T.TABLESPACE_NAME,
Round(Sum(T.BYTES) / (1024 * 1024), 2) AS TOTAL_BYTES,
Round(Max(T.BYTES) / (1024 * 1024), 2) AS MAX_BYTES
from SYS.DBA_FREE_SPACE t
group by t.TABLESPACE_NAME) A,
(SELECT B.autoextensible,
Round(Sum(B.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB,
Round(B.increment_by *
(select value
from v$parameter
where name = 'db_block_size') / (1024 * 1024),
2) AS incrementSize, --自增长大小为数据库中数据块的个数,一个数据块一般为8k
B.TABLESPACE_NAME,
min(C.CREATION_TIME) CREATE_TIME --获取创建时间,如果有多个数据文件,获取到最初时间
FROM SYS.DBA_DATA_FILES B, v$DATAFILE C
WHERE B.file_id = C.FILE#
group by B.TABLESPACE_NAME, B.autoextensible, B.increment_by) D
WHERE A.TABLESPACE_NAME = D.TABLESPACE_NAME
order by D.CREATE_TIME) zzz
left join (select t.default_tablespace,
to_char(wmsys.wm_concat(username)) all_users
from dba_users t
group by t.default_tablespace) xxx
on zzz.TABLESPACE_NAME = xxx.default_tablespace

写的比较急,没有进行仔细优化,希望大家多多指教!

查看表空间使用情况(SQL)的更多相关文章

  1. Oracle查看表空间使用情况

     查看表空间使用情况 select upper(f.tablespace_name) "表空间名",        d.tot_grootte_mb "表空间大小(m ...

  2. 【转】mysql查看表空间占用情况

    ${database} 为数据库的名称 /*1.查看索引 (1)单位是GB*/ SELECT CONCAT(ROUND(SUM(index_length)/(**), ), ' GB') AS 'To ...

  3. oracle 查看表空间使用情况

    查看表空间剩余: ||'M' from dba_free_space group by tablespace_name 查看表空间总大小.使用大小.剩余大小,使用率.剩余率 ) useded, tru ...

  4. [转] 使用SQL脚本查看表空间使用率和使用dba_tablespace_usage_metrics视图的差别

    传统的SQL脚本查看表空间使用率,使用的关键视DBA_DATA_FILE和DBA_FREE_SPACE. Oracle 11g引入了DBA_TABLESPACE_USAGE_METRICS视图.其实, ...

  5. 查看Oracle表空间使用情况与增大表空间

    1,查看表空间使用情况 SELECT D.TABLESPACE_NAME, SPACE || 'M' "SUM_SPACE(M)", BLOCKS "SUM_BLOCKS ...

  6. oracle查看表空间的大小及使用情况sql语句

    --------------------------tablespace------------------------------------------------ 1.//查看表空间的名称及大小 ...

  7. Oracle 查看表空间的大小及使用情况sql语句

    --1.查看表空间的名称及大小 )), ) ts_size FROM dba_tablespaces t, dba_data_files d WHERE t.tablespace_name = d.t ...

  8. oracle查看表空间的真实使用情况

    --查看表空间的真实使用情况 set linesize 500 pagesize 500 col tablespace_name format a25 col TP_REAL_GB format a1 ...

  9. Oracle数据库查看表空间sql语句

    转: Oracle数据库查看表空间sql语句 2018-09-03 15:49:51 兰海泽 阅读数 6212   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出 ...

随机推荐

  1. python基础语法14 面向对象

    面向对象 1.什么是面向对象? 面向对象是一门编程思想! - 面向过程编程思想: 核心是 “过程” 二字,过程指的是解决问题的步骤,即先干什么再干什么! 基于该编程思想编写程序,就好比在设计一条工厂流 ...

  2. Type Encodings

    https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles ...

  3. UFUN函数 UF_CSYS函数 UF_MTX函数(如何创建坐标系);

    // (题目不够长,写在这了) // 函数有 // UF_MTX3_initialize,UF_CSYS_create_matrix,UF_CSYS_create_csys,UF_CSYS_ask_c ...

  4. 退役III次后做题记录(扯淡)

    退役III次后做题记录(扯淡) CF607E Cross Sum 计算几何屎题 直接二分一下,算出每条线的位置然后算 注意相对位置这个不能先搞出坐标,直接算角度就行了,不然会卡精度/px flag:计 ...

  5. C函数之index、strtoul

    index函数 函数定义: #include<strings.h> char *index(const char *s, int c); 函数说明: 找出参数s字符串中第一个出现参数c的地 ...

  6. linux高性能服务器编程 (二) --IP协议详解

    第二章 IP协议详解 什么是IP协议:IP 协议是TCP/IP协议族的动力,它为上层提供了无状态.无连接.不可靠的服务. IP 头部信息:头部信息会出现在每一个IP数据报上,便于记录IP通信的源端IP ...

  7. python 判断操作系统以及操作系统版本号

    >>> import platform >>> platform.platform() 'Darwin-17.7.0-x86_64-i386-64bit' > ...

  8. 【CSP模拟赛】Freda的旗帜

    题目描述  要开运动会了,Freda承担起了制作全校旗帜的工作.旗帜的制作方法是这样的:Freda一共有C种颜色的布条,每种布条都有无数个,你可以认为这些布条的长.宽.厚都相等,只有颜色可能不同.每个 ...

  9. 油猴ajaxhook

    // ==UserScript== // @name ajaxHook // @namespace http://tampermonkey.net/ // @version 0.1 // @descr ...

  10. docker-nginx 与 tomcat--dockerfile

    nginx: FROM nginx:latest COPY nginx/sources.list /etc/apt/sources.list #RUN apt-get update && ...