表空间碎片相关:
select tablespace_name,
       round(sqrt(max(blocks) / sum(blocks)) *
             (100 / sqrt(sqrt(count(blocks)))),
             2) FSFI,
       (case
         when sqrt(max(blocks) / sum(blocks)) *
              (100 / sqrt(sqrt(count(blocks)))) > = 30 then
          '正常'
         when sqrt(max(blocks) / sum(blocks)) *
              (100 / sqrt(sqrt(count(blocks)))) < 30 then
          '表空间破碎化程度高,请整理'
       end) Prompt
  from dba_free_space
group by tablespace_name
order by 2;
--排除SYSAUX和UNDOTBS1

整理碎片: alter tablespace coalesce;

查看单个数据文件使用情况:
select distinct d.name,
       t.name,
       round(s.bytes / (1024 * 1024), 0) total_space,
       round(s.bytes / (1024 * 1024), 0)-round(f.bytes / (1024 * 1024), 0) used
  from v$tablespace t, v$datafile d, dba_data_files s, dba_free_space f
 where t.ts# = d.ts#
   and d.name = s.file_name
   and s.file_id = f.file_id
   and d.file# = f.file_id
   and t.name = f.tablespace_name

表空间使用率:
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 4 desc;

查看某个表空间实际剩余空间sql:
select ((
nvl((select sum(t.maxblocks*8/1024) from dba_data_files t where t.autoextensible='YES'and t.tablespace_name = 'SYSTEM'),0)
+
nvl((select sum(t.blocks*8/1024) from dba_data_files t where t.autoextensible='NO'and t.tablespace_name = 'SYSTEM'),0))
-

SELECT D.TOT_GROOTTE_MB - F.TOTAL_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 AND D.TABLESPACE_NAME = 'SYSTEM'
)) "实际剩余空间(M)"
from dual;

 

数据文件使用率:
select tot.file_name,100*(tot.total-free.total)/tot.total||'%' from
(select file_name,file_id,sum(bytes) as total from dba_data_files tot group by file_id,file_name ) tot,
(select file_id,sum(bytes) as total from dba_free_space free group by file_id) free  
where tot.file_id=free.file_id

经测试,查看数据文件使用率,性能较好,较准确的:
 SELECT B.TABLESPACE_NAME,
         B.FILE_NAME,
         ROUND (B.BYTES / 1024 / 1024 / 1024, 2) "SIZE GB",
         ROUND (B.MAXBYTES / 1024 / 1024 / 1024, 2) "MAX SIZE GB",
         ROUND (SUM (A.BYTES) / 1024 / 1024 / 1024, 2) "FREE SPACE GB",
         CASE
            WHEN MAXBYTES = 0
            THEN
               ROUND (SUM (A.BYTES) / 1024 / 1024 / 1024, 2)
            ELSE
               ROUND (
                    ( (B.MAXBYTES - B.BYTES) + SUM (A.BYTES)) / 1024 / 1024 / 1024, 2)
         END
            "TOTAL FREE SPACE GB"
    FROM DBA_FREE_SPACE A, DBA_DATA_FILES B
   WHERE A.FILE_ID = B.FILE_ID AND B.TABLESPACE_NAME IN ('CBAM')
GROUP BY B.TABLESPACE_NAME,
         B.FILE_NAME,
         B.BYTES,
         B.MAXBYTES
ORDER BY 1, 2;

查看TEMP表空间使用情况:
SELECT a.tablespace_name,
       a.BYTES / 1024 / 1024 "total(M)",
       (a.bytes - nvl(b.bytes, 0)) / 1024 / 1024 "free(M)"
  FROM (SELECT tablespace_name, SUM(bytes) bytes
          FROM dba_temp_files
         GROUP BY tablespace_name) a,
       (SELECT tablespace_name, SUM(bytes_cached) bytes
          FROM v$temp_extent_pool
         GROUP BY tablespace_name) b
 WHERE a.tablespace_name = b.tablespace_name(+)

表空间常用sql汇总的更多相关文章

  1. 【SQL实践】其他常用SQL汇总

    [SQL实践]其他常用SQL汇总 1.联表更新 update students stu inner join course on course.STUDENT_ID=stu.id set stu.na ...

  2. Oracle 表空间常用操作

    aliases: [Oracle表空间] tags:      [数据库,Oracle,Blog] summary: [Oracle表空间常用操作,包括查询.分析.扩容.删除.优化等] date:   ...

  3. Oracle数据库表空间常用操作

    1. 查看所有表空间大小 SQL> select tablespace_name,sum(bytes)/1024/1024 from dba_data_files group by tables ...

  4. Oracle系统表整理+常用SQL语句收集

    欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://g ...

  5. DBA_Oracle DBA常用SQL汇总(概念)

    2014-06-20 Created By BaoXinjian

  6. Oracle系统表整理+常用SQL语句收集(转载)

    原文:https://www.cnblogs.com/jiangxinnju/p/5840420.html-- DBA/ALL/USER/V_$/GV_$/SESSION/INDEX开头的绝大部分都是 ...

  7. MySQL 常用SQL 汇总

    1.查看当前应用连接,连接数突增排查 select user,SUBSTRING_INDEX(host,':',1) as ip , count(*) as count,db from informa ...

  8. oracle表空间相关SQL语句

    Oracle 数据库查看表空间的使用情况 SELECT d.tablespace_name, space "SUM_SPACE(MB)", ) "USED_SPACE(M ...

  9. oracle 表空间常用语句

    –查询表空间使用情况 SELECT UPPER(F.TABLESPACE_NAME) "表空间名", D.TOT_GROOTTE_MB "表空间大小(M)", ...

随机推荐

  1. React 同构开发(二)

    React 同构 所谓同构,简单的说就是客户端的代码可以在服务端运行,好处就是能极大的提升首屏时间,避免白屏,另外同构也给SEO提供了很多便利. React 同构得益于 React 的虚拟 DOM.虚 ...

  2. 【随笔】设置title标题图标为自定义图片

    第一步: 利用图标工具(有很多)制作图标文件(favicon.ico)上传到网站所在的服务器的根目录下,这个文件必须是16*16大小的图标文件. 第二步: 在<head></head ...

  3. 开启Unity项目中VS工程的属性面板

    https://www.cnblogs.com/CodeGize/p/7859656.html Unity生成的VS工程一般是无法打开属性面板的.但是事实上,如果使用VS for unity,通过配置 ...

  4. hadoop包含哪些技术?

    1.Hadoop包含哪些技术?Common, Avro, MapReduce, HDFS, Pig, Hive, Hbase, ZooKeeper, Sqoop, Oozie. 2.简介Common: ...

  5. Spring初始化日志

    Spring启动时的日志: 2013-11-22 14:55:59:319[INFO]: FrameworkServlet 'spring3': initialization completed in ...

  6. ASP.NET Web API根据代码注释生成Help文档

    使用Visual Studio新建一个ASP.NET Web API项目,直接运行,查看Help文档可以看到如下的API帮助说明 如何在Description中显示描述. 1. 打开Controlle ...

  7. Why Isn't curr_items Decreasing When Items Expire?

    Why Isn't curr_items Decreasing When Items Expire?

  8. Tidb 离线Ansible方式部署实践

    1.最近浏览到一个比较新的分布式数据库Tidb,开源看起来比较牛的样子,一时手痒就动手试试部署 2.参考官方 Ansible 离线方式部署 :https://pingcap.com/docs-cn/o ...

  9. mac 好用软件地址存储

    Navicat Premium 12.0.24 for mac已破解中文 https://www.52pojie.cn/thread-727433-1-1.html sublime 破解方法https ...

  10. RecyclerView IndexOutOfBoundsException 问题

    在项目中遇到一个RecyclerView 偶现的奔溃,查看日志,发现是: java.lang.IndexOutOfBoundsException: Index: 39, Size: 39 at jav ...