使用Oracle脚本检查对象空间的使用情况

TOM有个非常好的查看对象空间使用情况的脚本show_space.sql,下面将介绍。

这里介绍的是相对而言比较简单的,下面演示中其实是针对表的空间信息,至于对象的,我将在下面改写。

下面例子演示的是delete和truncate对高水位的影响,其中用到了脚本space_usage.sql。

[oracle@maa3 ~]$ cat space_usage.sql

-- space_usage.sql

declare

  l_tabname varchar2(30) := '&1';

  l_fs1_bytes number;

  l_fs2_bytes number;

  l_fs3_bytes number;

  l_fs4_bytes number;

  l_fs1_blocks number;

  l_fs2_blocks number;

  l_fs3_blocks number;

  l_fs4_blocks number;

  l_full_bytes number;

  l_full_blocks number;

  l_unformatted_bytes number;

  l_unformatted_blocks number;

begin

  dbms_space.space_usage(

  segment_owner => user,

  segment_name => l_tabname,

  segment_type => 'TABLE',

  fs1_bytes => l_fs1_bytes,

  fs1_blocks => l_fs1_blocks,

  fs2_bytes => l_fs2_bytes,

  fs2_blocks => l_fs2_blocks,

  fs3_bytes => l_fs3_bytes,

  fs3_blocks => l_fs3_blocks,

  fs4_bytes => l_fs4_bytes,

  fs4_blocks => l_fs4_blocks,

  full_bytes => l_full_bytes,

  full_blocks => l_full_blocks,

  unformatted_blocks => l_unformatted_blocks,

  unformatted_bytes => l_unformatted_bytes

  );

  dbms_output.put_line('0-25% Free = '||l_fs1_blocks||' Bytes = '||l_fs1_bytes);

  dbms_output.put_line('25-50% Free = '||l_fs2_blocks||' Bytes = '||l_fs2_bytes);

  dbms_output.put_line('50-75% Free = '||l_fs3_blocks||' Bytes = '||l_fs3_bytes);

  dbms_output.put_line('75-100% Free = '||l_fs4_blocks||' Bytes = '||l_fs4_bytes);

  dbms_output.put_line('Full Blocks = '||l_full_blocks||' Bytes = '||l_full_bytes);

end;

/

时间: 2025-01-05 01:58:17

使用Oracle脚本检查对象空间的使用情况的相关文章

在Oracle中获取磁盘空间的使用情况,吐血推荐

oracle Select Distinct    SysDate,       s.user#           As UserID,       u.name            As UserName,       s.ts#             As TableSpaceID,       d.tablespace_name As TableSpaceName,       s.FILE#           As DataFileID,       d.file_name   

使用nagios脚本检查指定进程内存使用情况

由于近来线上环境的某些进程总是内存溢出,所以需要添加一下对于某些进程的内存使用情况监控,搜到的别人的脚本大都不太满意,于是自己写了个,代码如下: #!/bin/bash HELP(){ echo " Usage: $0 -p /var/run/pidfile -w used% -c used%" echo " Exam: $0 -p /var/run/pidfile -w 85 -c 90" exit 3 } OK=0 ; WA=1 ; CR=2 ;UN=3 ; W

我的oracle健康检查报告(三)

       之前分别在http://blog.itpub.net/26736162/viewspace-1783297/ 和 http://blog.itpub.net/26736162/viewspace-1805156/ 中发布了我的健康检查报告(oracle巡检报告)第一版和第二版本的预览版,经过最近一段时间的改造,从界面到内容上又有了新的突破,具体参考附件,恳请广大网友看看是否还有需要添加的地方,以便更加完善这个报告内容,该脚本也耗费了我巨大精力,请大家注意版权,所有与此相似的请注明出

Oracle 用户、对象权限、系统权限

--================================ --Oracle 用户.对象权限.系统权限 --================================   一.用户与模式     用户:对数据库的访问,需要以适当用户身份通过验证,并具有相关权限来完成一系列动作        SYS用户,缺省始终创建,且未被锁定,拥有数据字典及其关联的所有对象        SYSTEM用户,缺省始终创建,且未被锁定,可以访问数据库内的所有对象     模式(schema):是某个

我的oracle健康检查报告

       最近一直想用sql来生成oracle的健康检查报告,这样看起来一目了然,经过网上搜资料加自己整理终于算是成型了,部分结果如下图所示, 具体参考附件,恳请广大网友看看是否还有需要添加的地方. DB_healthcheck_by_lhr_ORADG11G_20150826160539.zip ORADG11G 数据库巡检报告 Copyright (c) 2015-2100 (http://blog.itpub.net/26736162) lhrbest. All rights rese

Oracle数据库数据对象分析(上)

oracle|对象|数据|数据库 Oracle数据库数据对象中最基本的是表和视图,其他还有约束.序列.函数.存储过程.包.触发器等.对数据库的操作可以基本归结为对数据对象的操作,理解和掌握Oracle数据库对象是学习Oracle的捷径. 表和视图 Oracle中表是数据存储的基本结构.ORACLE8引入了分区表和对象表,ORACLE8i引入了临时表,使表的功能更强大.视图是一个或多个表中数据的逻辑表达式.本文我们将讨论怎样创建和管理简单的表和视图. 管理表 表可以看作有行和列的电子数据表,表是关

Oracle管理UNDO表空间

创建undo talespace有两种方式: (1)数据库创建时创建undo tablespace; (2)在一个已经存在的数据库创建. 在undo tablespace中不能创建数据库对象,这是因为这个表空间是为数据库recover而准备的. 1.创建数据库时创建undo tablespace 在创建数据库的时候可以通过指定undo子句来创建undo tablespace,但是这个子句不是必须的. 如果在创建数据库时,系统指定是auto模式,但是没有指明undo tablespace的名字,那

Oracle中的表空间

  表空间是数据库的逻辑划分,一个表空间只能属于一个数据库.所有的数据库对象都存放在指定的表空间中.但主要存放的是表, 所以称作表空间.Oracle数据库中至少存在一个表空间,即SYSTEM的表空间. SQL Server数据库与Oracle数据库之间最大的区别要属表空间设计.Oracle数据库开创性地提出了表空间的设计理念,这为Oracle数据库的高性能做出了不可磨灭的贡献.可以这么说,Oracle中很多优化都是基于表空间的设计理念而实现的.     典型应用一:控制用户所占用的表空间配额 在

Shell脚本实现硬盘空间和表空间的使用情况统计并邮件通知_linux shell

复制代码 代码如下: #/bin/bash #该脚本用于统计硬盘空间和表空间的使用情况,并邮件发出 #初始化环境变量 source /home/oracle/.bash_profile #获得本机ip ip=`/sbin/ifconfig eth0 | grep Bcast | cut -d : -f 2 | cut -d " " -f 1` #切换到本脚本目录 cd /home/oracle/shell/ #删除之前该脚本产生的日志文件 rm -rf $ip.txt #统计硬盘空间