关于使用SHOW_SPACE()

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

只适用于非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('DONNY')

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 过程已成功完成。

SQL

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航