今天編寫了乙個oracle的package,分享給大家。
背景是這樣的:現有的系統是從其他公司的系統移植過來的,因此有很多表都是對原來的那個公司定製的,而在移植過來之後,因為不適合業務的需求,所以就沒有使用,而長期以來也沒有人對其加以整理,因此造成系統中有很多冗餘的表,這對於系統的維護造成了很多不便,所以想要看看系統中到底哪些表是根本沒有使用的,對於這些表檢查出來之後,要做刪除。(當前系統中有2400多個表啊,初步估計其中大約有一半以上都是出於不使用的狀態)
package裡面的內容比較簡單,就是先建立了乙個表,用來儲存所有表以及是否使用的狀態。初始的時候,會把系統中所有錶抓過來,然後把使用狀態都設定為n,也就是沒有被使用。
清理觸發器
--為確定正在使用的表清理觸發器
procedure
clear_triggers
iscursor
cur_used_tables
isselect
owner
,table_name
from
table_usage a
where
a.is_using ='
y';strcleartriggersql
varchar2
(32767
);begin
forrec_used_table
incur_used_tables loop
strcleartriggersql :='
drop trigger tri_mu_'||
rec_used_table.owner ||'
_'||rec_used_table.table_name ||'
;';execute
immediate strcleartriggersql;
endloop;
exception
when
others
then
dbms_output.put_line(
'there is an exception -- trigger not exists--');
endclear_triggers;
需要說明的有兩點:
1、因為需要在package內執行建立和刪除觸發器的操作,所以需要確保有執行該項操作的許可權。
2、本來想要試著在table_usage表上增加乙個觸發器,一旦使用標誌由n變為y,那麼就自動刪除相應的表上的觸發器,但是沒能實現,有時間繼續試驗。
監控表使用情況的Package
今天編寫了乙個oracle的package,分享給大家。背景是這樣的 現有的系統是從其他公司的系統移植過來的,因此有很多表都是對原來的那個公司定製的,而在移植過來之後,因為不適合業務的需求,所以就沒有使用,而長期以來也沒有人對其加以整理,因此造成系統中有很多冗餘的表,這對於系統的維護造成了很多不便,...
監控linux磁碟使用情況
一.配置mail 1.安裝mail yum y install mailx 2.調整配置檔案 vi etc mail.rc 在最後兩行增加如下語句 set from abc qq.com smtp smtp.exmail.qq.com set smtp auth user abc qq.com sm...
nmon監控linux資源使用情況
mkdir root tmp nmon 建立乙個解壓內容目錄 解壓內容到指定目錄 chmod x root tmp nmon 賦予該目錄下內容有執行許可權。root tmp nmon nmon x86 64 centos6 執行該程式,比如說我現在用的是centos6.5 64位,那麼我們就選擇nm...