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

不一樣的天空w發表於2018-12-05

https://www.cnblogs.com/champaign/p/9468768.html


Oracle 常用系統包

一、DBMS_OUTPUT(用於輸入和輸出資訊)

二、DBMS_JOB(用於安排和管理作業佇列)

三、dbms_pipe(類似UNIX系統的管道)

四、dbms_alert(用於生成並傳遞資料庫預警資訊)

五.dbms_transaction(用於在過程,函式,和包中執行SQL事務處理語句.)

六.dbms_session(提供了使用PL/SQL實現ALTER SESSION命令)

七、dbms_rowid(用於在PL/SQL程式和SQL語句中取得行識別符號)

八、dbms_rls(實現精細訪問控制)

九、dbms_ddl(提供了在PL/SQL塊中執行DDL語句的方法)

十、dbms_shared_pool(提供了對共享池的一些過程和函式訪問)

十一、dbms_random(隨機數生成器)

十二、dbms_logmnr(分析重做日誌和歸檔日誌)

十三、dbms_flashback(用於啟用或禁止會話的flashback特徵)

十四、dbms_obfuscation_toolkit(用於加密和解密應用資料)

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

十六、dbms_space_admin(提供了區域性管理表空間的功能)

十七、dbms_tts(檢查表空間集合是否是自包含)

十八、dbms_repair(用於檢測,修復在表和索引上的損壞資料塊)

十九、dbms_resource_manager(用於維護資源計劃,資源使用組和資源計劃指令)

二十、dbms_stats(用於蒐集,檢視,修改資料庫物件的最佳化統計資訊)

二十一、utl_file(用於讀寫OS檔案)

二十二、utl_inaddr(用於取得區域網或Internet環境中的主機名和IP地址)

二十三、DBMS_METADATA(提供提取資料庫物件的完整定義的介面)

二十四、DBMS_SQL


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;


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31397003/viewspace-2284257/,如需轉載,請註明出處,否則將追究法律責任。

相關文章