2016-12-03 35 views
0

我們有一個包含在包內的oracle過程。當我們調用從.net(Windows窗體),其過程它給操作超時錯誤
從屏幕上看到這條消息「操作超時錯誤」後,當我去的SQLDeveloper和編譯它們之後編譯全部包然後,程序工作速度非常快,我可以在5秒內檢索數據。 你能告訴我們如何解決這個問題嗎?根本原因是什麼?Oracle過程緩慢(操作超時錯誤)

+0

您是否嘗試過其他過程。網 –

+0

也許是https://stackoverflow.com/questions/10352300/use-gvsession-to-tell-if-a-query-is-hanging的副本 –

回答

0

試試這個運行之前程序

ALTER PACKAGE yourpackage 
    COMPILE PACKAGE; 
0

你應該proabbly分析爲什麼包越來越無效,並在執行前需要編譯,要麼消除代碼taht導致失效或以前的回答說,執行運行程序之前編譯。當你改變一些依賴對象(一些負載時swaping表名或別名,改變表,動態滴速和創建包依賴於對象)

包裝可以得到無效。這兩個線程可能會對您有所幫助:What Situations Cause Oracle Packages to Become Invalid?When does an Oracle Package Specification become INVALID如果您能夠消除程序包失效,則最好在每次運行程序之前無法進行編譯。

還有一個原因,從.NET調用過程不是重新編譯包裝可以是驅動器。幾年前,我遇到過這樣的問題,並且記住駕駛員的幫助有所改變。但我不記得我們是否改爲有管理的或無人管理的司機。