監控表使用情況的Package

2021-05-11 16:12:54 字數 1255 閱讀 7844

今天編寫了乙個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...