SCHEDULER呼叫XDB程式導致效能問題

yangtingkun發表於2012-09-22

客戶資料庫出現SCHEDULER後臺作業頻繁呼叫XDB包,導致系統效能受到影響,資料庫版本為10.2.0.3

 

 

導致效能問題的SQL為:

BEGIN BEGIN IF (xdb.DBMS_XDBZ0.is_hierarchy_enabled_internal(sys.dictionary_obj_owner, sys.dictionary_obj_name, sys.dictionary_obj_owner)) THEN xdb.XDB_PITRIG_PKG.pitrig_truncate(sys.dictionary_obj_owner, sys.dictionary_obj_name); END IF; EXCEPTION WHEN OTHERS THEN null; END; BEGIN IF (xdb.DBMS_XDBZ0.is_hierarchy_enabled_internal(sys.dictionary_obj_owner, sys.dictionary_obj_name, sys.dictionary_obj_owner, xdb.DBMS_XDBZ.IS_ENABLED_RESMETADATA)) THEN xdb.XDB_PITRIG_PKG.pitrig_dropmetadata(sys.dictionary_obj_owner, sys.dictionary_obj_name); END IF; EXCEPTION WHEN OTHERS THEN null; END; END;

這個SQL在一小時的時間內執行了120多萬次,平均每秒要執行160次,難怪會導致效能問題。Oracle在文件SQL IN XDB.DBMS_XDBZ0 LINE 637 IS MAJOR CONSUMER OF CPU [ID 972671.1]對這個問題進行了說明,導致這個問題的原因是XDB使用者呼叫了SYS.DBMS_SYS_SQL過程,Oracle提供了補丁Patch 4766344可以解決這個問題。

 

 

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

相關文章