对于大型数据库,Oracle占用的磁盘空间非常大,掌握数据库中那些用户、表占用了多杀磁盘空间,以及增长情况,可以方便日后对磁盘系统进行维护和扩充。

对Oracle磁盘空间使用情况,可以分为按照表空间、用户或者表来进行统计。

(一)、表空间

计算表空间的剩余大小

select A.TABLESPACE_NAME,A.BYTES/(1024*1024*1024) "SPACE(G)", C.BYTES/(1024*1024) "FREE SPACE(M)",(C.BYTES*100)/A.BYTES "% FREE" FROM SYS.SM$TS_AVAIL A,SYS.SM$TS_FREE C WHERE A.TABLESPACE_NAME=C.TABLESPACE_NAME;

或者select tablespace_name, sum(bytes)/(1024*1024*1024) "SPACE(G)" from dba_free_space group by tablespace_name;

(二)、用户

计算每个用户占用的磁盘空间select owner,sum(bytes)/1024/1024/1024 "Space(G)" from dba_segments group by owner order by 2;

计算某个用户占用的磁盘空间select owner,sum(bytes)/1024/1024/1024 "Space(G)" from dba_segments where owner=‘LIAOJL‘ group by owner;

(三)、表

Oracle都是以段为存储的,segment_name包含了表、索引、回滚段等,所以在dba_extents,dba_segments都可以找到占用空间大小的信息。select sum(bytes)/1024/1024 "Space(M)" from dba_extents where owner=‘LIAOJL‘ and segment_name=‘STUDENTS‘;

dba_segments也可以计算表的大小:select segment_name,bytes/1024/1024 "Space(MB)" from dba_segments where SEGMENT_TYPE=‘TABLE‘ and segment_name=upper(‘你要查找的表的名字‘);

当时上面的写法不完全正确,当表是分区表,dba_segments有多条信息,可改成:select segment_name,sum(bytes)/1024/1024 "Space(MB)" from dba_segments where segment_name=upper(‘你要查找的表的名字‘);

上述方法对于一个很大的数据库,SQL语句执行起来会很慢,而且消耗数据库资源。Oracle支持对表进行分析,执行分析表操作后可以在dba_tables等系统表中查询表大小、行数等信息,不过这些信息不是实时更新的,可以在数据库空闲时,通过计划任务来更新。

分析SQL方法:analyze table tab_name compute statistics;

表太大的话可以执行:analyze table tab_name estimate statistics;

/*SELECT tablespace_name, sum ( blocks ) as free_blk ,

trunc ( sum ( bytes ) /(1024*1024) ) as free_m,

max ( bytes ) / (1024) as big_chunk_k, count (*) as num_chunks

FROM dba_free_space GROUP BY tablespace_name;*/

/*

* SqlName: obj_seg

* 2006-11-17 By HuiYi

* 查詢對象大小

*/

select owner,sum(bytes)/1024/1024/1024 "Space(G)" from dba_segments group by owner order by 2 desc

col segment_name format a30

col segment_type format a15

col tablespace_name format a10

col bytes heading "Size(M)"

with t as(

select segment_name,owner,owner||‘.‘||segment_name,

segment_type,

tablespace_name,

bytes / 1024 / 1024 bytes

from dba_segments

where owner = upper(‘&user‘)

order by bytes desc

)

select * from t where rownum<10;

原文:http://my.oschina.net/u/133558/blog/512092

评估应用使用oracle磁盘空间,Oracle磁盘空间使用统计相关推荐

  1. oracle缩减临时表空间,oracle的临时表空间写满磁盘空间解决改问题的步骤

    oracle的临时表空间写满磁盘空间,解决改问题的具体步骤,以下的操作是用数据库的sys超级用户操作 刚开始打算把临时表空间的数据文件重新缩小就好了 执行: SQL> alter databas ...

  2. 监视Oracle ASM磁盘组上的空间使用情况(空闲和已用)

    监视Oracle ASM磁盘组上的空间使用情况(空闲和已用) sqlplus: SELECT name, free_mb, total_mb, free_mb/total_mb*100 as perc ...

  3. ORACLE 11G RAC ASM磁盘全部丢失后的恢复

    故障描述 (1)存储故障导致ASM磁盘丢失. (2)CRS因为OCR和VOTEDISK的丢失,除了OHAS还联机外,CLUSTERWARE服务都已经停止 操作步骤 一.恢复OCR和VOTEDISK ( ...

  4. oracle仲裁磁盘是一块磁盘吗,基于ASM冗余设计的架构,仲裁磁盘组应该如何去规划?...

    ASM使用独特的镜像算法:不镜像磁盘,而是镜像盘区.作为结果,为了在产生故障时提供连续的保护,只需要磁盘组中的空间容量,而不需要预备一个热备(hot spare)磁盘.不建议用户创建不同尺寸的故障组, ...

  5. oracle 查询数据库io,查看Oracle数据文件和磁盘i/o情况

    查看Oracle数据文件和磁盘i/o情况 --查询当前用户使用了多少还原表空间 select d.username,c.name,b.writes from v$transaction a,v$rol ...

  6. oracle中asm磁盘不足,Oracle用户无法访问ASM磁盘组问题

    1. 权限问题引起找不到ASM磁盘组 1.1 确认操作系统用户属主 # 确认属主 Grid Infrastructure Home Owner : grid Primary Group : oinst ...

  7. oracle asm spfile丢失,Oracle 11g RAC ASM磁盘全部丢失后的恢复

    Oracle 11g RAC ASM磁盘全部丢失后的恢复,Oracle 11.2.0.3 RAC ON Oracle Linux 6 x86_64,只有一个ASM外部冗余磁盘组mdash;m 一.环境 ...

  8. oracle备份磁盘头,oracle asm 磁盘头数据以及备份与恢复基础篇(2)

    oracle asm 磁盘头数据以及备份与恢复基础篇(二) 今天是2014-03-11,对于Oracle asm的元数据分为固定源数据和逻辑源数据,固定源数据一般占用磁盘的前两个au,其中内容包括di ...

  9. grid赋予oracle磁盘权限,grid 与 Oracle 用户下 Oracle 程序权限不一致导致无法连接 ASM 问题...

    grid 与 Oracle 用户下 Oracle 程序权限不一致导致无法连接 ASM 问题 在 RAC 中, 启动数据库时遇到如下报错:Oracleinstance started. TotalSys ...

  10. Oracle数据库占用磁盘,导致磁盘活动时间为100%的解决方法

     在使用Oracle的过程中,发生了一件猝不及防的事情,那就是Oracle数据库导致电脑磁盘的活动时间占有率为100%,没错是100%,导致电脑一段时间内无缘无故的卡死,无缘无故的死机,重启后过了一段 ...

最新文章

  1. ORACEL游标的使用实例
  2. .NET之全平台一体化的体验
  3. QT乱码总结8.编码测试和总结三
  4. Maven的安装以及在Myeclipse上的配置——超详细
  5. 以太网和局域网的关系
  6. mysql 工具 国产_推荐一款国产化比较好用的数据可视化工具(BI工具)
  7. RSync实现文件同步备份配置详解
  8. javascript上传图片前预览
  9. nodejs 游戏框架_Pomelo:网易开源基于 Node.js 的游戏服务端框架
  10. 华为U2000北向接口开发中遇到的坑——获取HW_MSTPInventory管理对象失败
  11. oracle系统FA调整折旧年限,Oracle财务管理系统培训手册.doc
  12. the OCD JTAG adapter was detected ,but there is...
  13. 零基础的小明要如何成为前端工程师?
  14. 安卓app源码和设计报告——简易记账本
  15. Cannot assign requested address错误解决
  16. python查看汉字的编码_python有关汉字编码问题
  17. 跟我学Android之一 概述
  18. 广播、组播 socket编程
  19. ios375对应Android,iOS开发之尺寸(一):各种机型尺寸
  20. 递归求二叉排序树ASL值

热门文章

  1. CSS使用display:incline与float:left的区别:脱离文档流 参差不齐
  2. jQuery的var that=this
  3. 对mysql日志进行操作的总结包括 启用,过期自动删除 等
  4. 原生APP与web APP的区别
  5. api可以主动采集用户数据吗_模拟量数字量采集卡之EC-8001篇
  6. maven不能拉取私服的原因
  7. python实现字典树 时间复杂度_Python实现字典树
  8. 计算机网络 闯关,2009计算机网络考研试题过关必练.docx
  9. java线程池应用的好处_java高级应用:线程池全面解析
  10. MySQL 错误 #1113