【PL/SQL】TOM 的 show_space()

只适用于非ASSM:

create or replace
procedure show_space
( p_segname in varchar2,
p_owner in varchar2 default user,
p_type in varchar2 default 'TABLE' )
as
l_free_blks number;
l_total_blocks number;
l_total_bytes number;
l_unused_blocks number;
l_unused_bytes number;
l_LastUsedExtFileId number;
l_LastUsedExtBlockId number;
l_LAST_USED_BLOCK number;
procedure p( p_label in varchar2, p_num in number )
is
begin
dbms_output.put_line( rpad(p_label,40,'.') ||
p_num );
end;
begin
dbms_space.free_blocks
( segment_owner => p_owner,
segment_name => p_segname,
segment_type => p_type,
freelist_group_id => 0,
free_blks => l_free_blks );
dbms_space.unused_space
( segment_owner => p_owner,
segment_name => p_segname,
segment_type => p_type,
total_blocks => l_total_blocks,
total_bytes => l_total_bytes,
unused_blocks => l_unused_blocks,
unused_bytes => l_unused_bytes,
LAST_USED_EXTENT_FILE_ID => l_LastUsedExtFileId,
LAST_USED_EXTENT_BLOCK_ID => l_LastUsedExtBlockId,
LAST_USED_BLOCK => l_LAST_USED_BLOCK );

p( 'Free Blocks', l_free_blks );
p( 'Total Blocks', l_total_blocks );
p( 'Total Bytes', l_total_bytes );
p( 'Unused Blocks', l_unused_blocks );
p( 'Unused Bytes', l_unused_bytes );
p( 'Last Used Ext FileId', l_LastUsedExtFileId );
p( 'Last Used Ext BlockId', l_LastUsedExtBlockId );
p( 'Last Used Block', l_LAST_USED_BLOCK );
end;
/
例:
SQL> create table donny(id char(1024));

表已创建。

SQL> set serveroutput on

SQL> exec show_space('NCDBYANG')
Free Blocks.............................0
Total Blocks............................5
Total Bytes.............................40960
Unused Blocks...........................4
Unused Bytes............................32768
Last Used Ext FileId....................8
Last Used Ext BlockId...................27
Last Used Block.........................1

PL/SQL 过程已成功完成。

时间: 2024-10-02 21:14:56

【PL/SQL】TOM 的 show_space()的相关文章

【PL/SQL】show_space

SQL> create table objects as select * from dba_objects; 表已创建 SQL> @f:\sql\show_space SQL> set serveroutput on SQL> exec show_space('objects','auto'); Total Blocks............................1024                                    Total Bytes..

ORA-06502:PL/SQL :numberic or value error: character string buffer too small

今天遇到一个错误提示:ORA-06502:PL/SQL :numberic or value error: character string buffer too small,一般对应的中文信息为:ORA-06502: PL/SQL: 数字或值错误 :字符串缓冲区太小.仔细检查调试过程中才发现是开发人员定义了一个变量,但是在脚本里面赋予了该变量超过其长度的值.结果就报这个错误.我习惯总结每一 个遇到的错误信息,既有利于学习.总结知识,也方便以后遇到此类问题能够及时给出解决方法.   如果执行oe

对比 PL/SQL profiler 剖析结果

      使用PL/SQL PROFILER 剖析PL/SQL代码是快速定位PL/SQL代码段最有效的方法.在上一篇文章使用PL/SQL PROFILER 定位 PL/SQL 瓶颈代码中描述了安装PROFILER,并给出了剖析的示例.本文参照了Tom大师的代码来对比剖析前后的性能并附上其代码.   1.用于实施剖析的存储过程 --环境 sys@USBO> select * from v$version where rownum<2; BANNER ----------------------

PL/SQL专家指南3——调用者权限和定义者权限 上篇

1.介绍定义者(definer)权限和调用者(invoker)权限的概念 定义者权限:定义者权限PL/SQL程序单元是以这个程序单元拥有者的特权来执行它的,也就是说,任何具有这个PL/SQL程序单元执行权的用户都可以访问程序中的对象.所有具有执行权的用户都有相同的访问权限,在定义者权限下,执行的用户操作的schema为定义者,所操作的对象是定义者在编译时指定的对象. 调用者权限:调用者权限是指当前用户(而不是程序的创建者)执行PL/SQL程序体的权限.这意味着不同的用户对于某个对象具有的权限很可

PostgreSQL Oracle 兼容性之 - PL/SQL FORALL, BULK COLLECT

Oracle PL/SQL 开发的童鞋,一定对O家的bulk批量处理的性能很是赞赏吧.但是PostgreSQL用户请不要垂涎,作为学院派和工业界的一颗璀璨明珠.开源数据库PostgreSQL,也有对应的批量处理策略哦,而且看起来性能完全不输Oracle.下面是一组LOOP和BULK的性能测试数据 一起来耍耍吧,先看看Oracle怎么耍的. Oracle PL/SQL FORALL, BULK COLLECT 为什么Oracle的PL/SQL过程语言需要bulk处理SQL,看一张图你就明白了,因为

Oracle数据库之PL/SQL程序基础设计

一.PL/SQL块结构 前边我们已经介绍了PL/SQL块的结构,再来回顾一下: DECLARE /* * 声明部分--定义常量.变量.复杂数据类型.游标.用户自定义异常 */ BEGIN /* * 执行部分--PL/SQL语句和SQL语句 */ EXCEPTION /* * 异常处理部分--处理运行异常 */ END; /*块结束标记 */ 要实现PL/SQL程序设计,先介绍如下的基本内容: 二.标识符 PL/SQL程序设计中的标识符定义与SQL的标识符定义的要求相同: 标识符名第一个字符必须为

PL/SQL DEVELOPER 6.0.5 发布了

March 14, 2005 - Version 6.0.5 releasedEnhancements Insert Template context menu would hide first item and add dummy item Insert Template did not show subfolders Connection preferences in registry (Logon section) did not work Projects: progress while

设置PL/SQL Developer的方法

PL/SQL Beautifier(PL/SQL 美化器) PLD 6以上版本有对DML代码格式化的功能.在SQL Window或Program Window中选中部分代码(如果 不选则对整个窗口的代码操作),在菜单中选Edit -> PL/SQL Beautifier,得到格式化的代码. 对于非法的DML语句或DDL语句,PLD将会在下方状态栏提示PL/SQL Beautifier could not parse text .在缺省的状态下,PLD会把DML语句的每一个字段都排在单独的一行,这

PL/SQL游标(原创)

游标的相关概念及特性定义映射在结果集中某一行数据的具体位置,类似于C语言中的指针.即通过游标方式定位到结果集中某个特定的行,然后根据业务需求对该行进行相应特定的操作.游标的分类显示游标:即用户自定义游标,专门用于处理select语句返回的多行数据隐式游标:系统自动定义的游标,记录集只有单行数据,用于处理select into 和DML语句游标使用的一般过程:显示游标:声明, 打开, 读取, 关闭隐式游标:直接使用读取,声明.打开.关闭都是系统自动进行的显示游标的过程描述a.声明游标CURSOR