十五、dbms_space(分析段增長和空間的需求)


1、概述

作用:用於分析段增長和空間的需求。


2、包的組成


1)、unused_space
作用:用於返回對象(表、索引、簇)的未用空間
語法:dbms_space.unused_space(segment_owner in varchar2,
segment_name in varchar2,segment_type in varchar2,
total_blocks out number,total_bytes out number,
unused_blocks out number,unused_bytes out number,
last_used_extent_file_id out number,
last_used_extent_block_id out number,
last_used_block out number,
partition_name in varchar2 default null);
其中segment_owner指定段所有者,segment_name指定段名,segment_type指定段類型,
tatal_blocks返回段的總計塊個數,total_bytes返回段的總計字節數,
unused_blocks返回段的末用塊個數,unused_byte返回段未用字節,
last_used_extent_file_id返回包含數據的最后一個區所在文件的編號,
last_used_extent_block_id返回包含數據的最有一個區的塊編號,
last_used_block返回包含數據的最有一個區的最后一個塊,
partition_name指定要分析的段分區號。

2)、free_blocks
作用:用於返回對象(表、索引、簇)的空閑塊信息。
語法:dbms_space.free_blocks(segment_owner in varchar2,segment_name in varchar2,segment_type in varchar2,freelist_group_id in number,
free_blks out number,scan_limit in number default null,partition_name in varchar2 default null);
其中freelist_group_id指定返回空閑列表組所對應的空閑列表個數,scan_limit指定要讀取的空閑列表塊的最大個數。

3)、space_usage
作用:顯示段HWM(High Water Mark)以下數據塊的空閑使用情況,並且該過程只適用於自動段空間管理的表空間。
語法:dbms_space.space_usage(segment_owner in varchar2,segment_name in varchar2,segment_type in varchar2,unformatted_blocks out number,unformatted_bytes out number,
fs1_blocks out number,fs1_bytes out number,
fs2_blocks out number,fs2_bytes out number,
fs3_blocks out number,fs3_bytes out number,
fs4_blocks out number,fs4_bytes out number,
full_blocks out number,full_bytes out number,
partition_name in varchr2 default null);
其中unformatted_blocks用於返回未格式化塊的個數,unformatted_bytes用於返回未格式化的字節數,
fs1_blocks用於返回空閑空間在0~25%之間的塊個數,fs1_bytes返回空閑空間在0~25%之間的字節數,2范圍為25%~50%之間,3范圍為50%~75%之間,4范圍為75%~100%之間。
full_blocks返回段的總計塊個數,full_bytes返回段的總計字節數。


3、綜合例子


1)、簡單例子
例子:

declare
total_blocks number;
total_bytes number;
unused_blocks number;
unused_bytes number;
last_used_extent_file_id number;
last_used_extent_block_id number;
last_used_block number;
free_blocks number;
variable unf number,
variable unfb number,
variable fs1 number,
variable fs1b number,
variable fs2 number,
variable fs2b number,
variable fs3 number,
variable fs3b number,
variable fs4 number,
variable fs4b number,
variable full number,
variable fullb number,
begin
--unused_space
dbms_space.unused_space('SYSTEM','T1','TABLE',total_blocks,total_bytes,unused_blocks,unused_bytes,last_used_extent_file_id,last_used_extent_block_id,last_used_block);
dnms_output.put_line(to_char('HWM='||total_blocks-unused_blocks-1));
--free_blocks
dbms_space.free_blocks('SYSTEM','T1','TABLE',0,free_blocks);
dbms_output.put_line('組0的空閑列表個數'||free_blocks);
--space_usage
dbms_space.space_usage('U1','T','TABLE',:nuf,:unfb,:fs1,:fs1b,:fs2,:fs2b,:fs3,:fs3b,:fs4,:fs4b,:fnull,:fnullb);
end;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM