Oracle數(shù)據(jù)庫失效對象處理詳情
近期對數(shù)據(jù)庫進行巡檢,發(fā)現(xiàn)數(shù)據(jù)庫業(yè)務(wù)用戶(非 SYS/Public)下存在失效對象。對失效對象進行分析,主要包括失效的視圖、物化視圖、函數(shù)、包、觸發(fā)器等。
思考:
基于以下原因,建議對失效對象進行處理:
1、通過失效的對象,可能能夠反推發(fā)現(xiàn)業(yè)務(wù)軟件問題(業(yè)務(wù)系統(tǒng)功能太多,可能存在測試不充分的問題);
2、如果失效對象太多,業(yè)務(wù)又頻繁調(diào)用的話,擔心影響數(shù)據(jù)庫性能(未進行測試,個人想法,如有錯誤請大家指正);
處理方式:
1、先搜索發(fā)現(xiàn)失效對象(在sys用戶下執(zhí)行)
select owner, object_name, object_type, status from dba_objects t where status='INVALID' order by t.owner,t.object_type;
2、對失效對象自動生成重編譯語句,進行重編譯
下面是為視圖、函數(shù)、物化視圖、包、觸發(fā)器的生成語句。
--自動生成視圖重新編譯語句 select owner, object_name, object_type, status ,'alter view ' || t.owner||'.' || object_name || ' compile'||';' from dba_objects t where status='INVALID' and t.object_type='VIEW' order by t.owner,t.object_type; --自動生成函數(shù)重新編譯語句 select owner, object_name, object_type, status ,'alter FUNCTION ' || t.owner||'.' || object_name || ' compile'||';' from dba_objects t where status='INVALID' and t.object_type='FUNCTION' order by t.owner,t.object_type; --自動生成視物化圖重新編譯語句 select owner, object_name, object_type, status ,'alter MATERIALIZED VIEW ' || t.owner||'.' || object_name || ' compile'||';' from dba_objects t where status='INVALID' and t.object_type='MATERIALIZED VIEW' order by t.owner,t.object_type; --自動生成包重新編譯語句 select owner, object_name, object_type, status ,'alter PACKAGE ' || t.owner||'.' || object_name || ' compile'||';' from dba_objects t where status='INVALID' and t.object_type='PACKAGE BODY' order by t.owner,t.object_type; --自動生成觸發(fā)器重新編譯語句 select owner, object_name, object_type, status ,'alter TRIGGER ' || t.owner||'.' || object_name || ' compile'||';' from dba_objects t where status='INVALID' and t.object_type='TRIGGER' order by t.owner,t.object_type;
生成語句后復制處理批量執(zhí)行即可
3、重新編譯應(yīng)該會解決掉一部分的失效對象,但是仍然會有部分對象無法通過重新編譯解決。對于這部分對象,需要進行人工的逐個分析,現(xiàn)場可以確認的進行確認處理(有用則修改,無用則刪除),現(xiàn)場不能確認的可以和研發(fā)確認,最終完成對失效對象處理的目的。
如果最終仍有部分無人可以確認,建議先暫時保留即可。
到此這篇關(guān)于Oracle數(shù)據(jù)庫失效對象處理詳情的文章就介紹到這了,更多相關(guān)Oracle數(shù)據(jù)庫失效對象處理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
oracle數(shù)據(jù)庫的基本使用教程(建表,操作表等)
這篇文章主要給大家介紹了關(guān)于oracle數(shù)據(jù)庫的基本使用(建表,操作表等)的相關(guān)資料,包含了Oracle創(chuàng)建表(create table as)使用方法、操作技巧、實例演示和注意事項,需要的朋友可以參考下2024-01-01
Oracle數(shù)據(jù)庫中SQL語句的優(yōu)化技巧
這篇文章主要介紹了Oracle數(shù)據(jù)庫中SQL語句的優(yōu)化技巧的相關(guān)資料,需要的朋友可以參考下2016-07-07
Oracle數(shù)據(jù)庫按時間進行分組統(tǒng)計數(shù)據(jù)的方法
這篇文章主要介紹了Oracle數(shù)據(jù)庫按時間進行分組統(tǒng)計數(shù)據(jù)的方法,同時附帶了一個在不同時間段內(nèi)的統(tǒng)計實現(xiàn),需要的朋友可以參考下2015-11-11
oracle 在一個存儲過程中調(diào)用另一個返回游標的存儲過程
實際項目當中經(jīng)常需要在一個存儲過程中調(diào)用另一個存儲過程返回的游標,本文列舉了兩種情況講述具體的操作方法。2009-09-09
ORA-01578、ORA-01110:數(shù)據(jù)塊被損壞,此時無法讀取文件問題修復方案
這篇文章主要給大家介紹了關(guān)于ORA-01578、ORA-01110:數(shù)據(jù)塊被損壞,此時無法讀取文件問題的修復方案,文中通過示例代碼介紹的非常詳細,對大家學習或者使用數(shù)據(jù)庫具有一定的參考學習價值,需要的朋友可以參考下2024-03-03

