SQL> create or replace procedure p_unused_space(p_object_name in varchar2,
p_object_type in varchar2 default 'TABLE',
p_owner in varchar2 default user,
p_partition_name in varchar2 default '') is
v_total_blocks number;
v_total_bytes number;
v_unused_blocks number;
v_unused_bytes number;
v_last_used_extent_file_id number;
v_last_used_extent_block_id number;
v_last_used_block number;
begin
dbms_space.unused_space(upper(p_owner), upper(p_object_name), upper(p_object_type),
v_total_blocks,
v_total_bytes, v_unused_blocks, v_unused_bytes, v_last_used_extent_file_id,
v_last_used_extent_block_id, v_last_used_block, upper(p_partition_name));
dbms_output.put_line('total_blocks is ' || v_total_blocks);
dbms_output.put_line('total_bytes is ' || v_total_bytes);
dbms_output.put_line('unused_blocks is ' || v_unused_blocks);
dbms_output.put_line('unused_bytes is ' || v_unused_bytes);
dbms_output.put_line('last_used_extent_file_id is ' || v_last_used_extent_file_id);
dbms_output.put_line('last_used_extent_block_id is ' || v_last_used_extent_block_id);
dbms_output.put_line('last_used_block is ' || v_last_used_block);
end;
/
SQL> set serveroutput on
SQL> exec p_unused_space('DEPT','TABLE','SCOTT');
total_blocks is 8
total_bytes is 65536
unused_blocks is 4
unused_bytes is 32768
last_used_extent_file_id is 20
last_used_extent_block_id is 9
last_used_block is 4
PL/SQL procedure successfully completed.
HWM= total_blocks -unused_blocks-1=8-4-1=3
SQL> alter system dump datafile 20 block 9;
System altered.
HWM Flag: HWM Set
Highwater:: 0x0500000d ext#: 0 blk#: 4 ext size: 8
#blocks in seg. hdr's freelists: 0
#blocks below: 4
mapblk 0x00000000 offset: 0
如何计算高水位线
最新推荐文章于 2024-03-29 17:07:08 发布