编写以下过程查询数据块使用空间
create or replace procedure space_of_use(v_segment_owner in varchar2 default user,v_segment_name in varchar2,v_segment_type varchar2 default 'TABLE',v_partition_name in varchar2 default null)
as
--空閒介於0%-25%之間的數據塊
fs1_blocks number;
fs1_bytes number;
--空閒介於25%-50%之間的數據塊
fs2_blocks number;
fs2_bytes number;
--空閒介於50%-75%之間的數據塊
fs3_blocks number;
fs3_bytes number;
--空閒介於75%-100%之間的數據塊
fs4_blocks number;
fs4_bytes number;
--全部填滿的數據塊
full_blocks number;
full_bytes number;
--未格式化的數據塊
noformatted_blocks number;
noformatted_bytes number;
begin
dbms_space.space_usage(
segment_owner => v_segment_owner,
segment_name => v_segment_name,
segment_type => v_segment_type,
fs1_bytes => fs1_bytes,
fs1_blocks => fs1_blocks,
fs2_bytes => fs2_bytes,
fs2_blocks=>fs2_blocks,
fs3_bytes => fs3_bytes,
fs3_blocks => fs3_blocks,
fs4_bytes => fs4_bytes,
fs4_blocks => fs4_blocks,
full_bytes => full_bytes,
full_blocks => full_blocks,
unformatted_blocks => noformatted_blocks,
unformatted_bytes => noformatted_bytes,
partition_name => v_partition_name
);
dbms_output.put_line('未格式化的數據塊'||noformatted_blocks);
dbms_output.put_line('空閒介於0%-25%之間的數據塊'||fs1_blocks);
dbms_output.put_line('空閒介於25%-50%之間的數據塊'||fs2_blocks);
dbms_output.put_line('空閒介於50%-75%之間的數據塊'||fs3_blocks);
dbms_output.put_line('空閒介於75%-100%之間的數據塊'||fs4_blocks);
dbms_output.put_line('全部填滿的數據塊'||full_blocks);
end;
—普通表
begin
space_of_use(‘SEGMENT_OWNER’,‘SEGMENT_NAME’,‘TABLE’);
end;
–分區表
begin
space_of_use(‘SEGMENT_OWNER’,‘SEGMENT_NAME’,‘TABLE PARTITION’,‘PARTITION_NAME’);
end;