執行儲存過程時候的乙個非常奇怪的效能問題

2022-02-01 09:10:55 字數 873 閱讀 3565

系統中存在乙個模組,需要完成大量的合法性檢查和查詢,為了提高效能,設計了儲存過程包和乙個主儲存過程,由資料訪問層呼叫,

但是在執行該模組的時候經常超時,甚至等丟擲待鎖的錯誤。在我的計算機上同樣安裝了oracle,但是執行該儲存過程的時間不超過5秒鐘,

使用該模組的時候效能也是表現很好。花費了將近乙個星期的時間對該執行該儲存過程進行優化,但是問題依然沒有得到解決,百思不得其解。

後來想到我們的系統是乙個分布式的系統,客戶端運算元據都是通過中介軟體伺服器進行的。懷疑是不是中間價伺服器與oracle伺服器通訊的效能

很差的原因造成的。在中間價伺服器上安裝了pl/sql developer,然後執行上述的儲存過程,這時候乙個非常奇特的現象出現了,儲存過程執行的時候特別的慢,

消耗了11分鐘才執行完畢。也就是說,系統的效能瓶頸可能在中介軟體伺服器與oracle伺服器的通訊上。

為了驗證這個問題,在另外一台測試伺服器上安裝了oracle,建立相關的資料環境,同樣執行該儲存過程的時間沒有超過5秒鐘。也就是說

可以確定中介軟體伺服器與oracle伺服器的通訊是系統效能的瓶頸。

客戶的oracle伺服器作業系統是unix作業系統,硬體是小型機,中間價伺服器採用windows server2003 r2,按照常規的理解,其效能應該

非常好才對。因為沒有許可權對unix操作的設定做檢查,對 unix作業系統也不是特別精通,經協商讓使用者諮詢ibm等**商來解決這個問題。目前使用者

暫時將oracle安裝到windows平台下使用。

由此想到我們平時總是強調pl/sql和oracle的效能優化,是完全從程式的角度出發的優化方式,其實有的時候效能不僅僅是程式的問題,同樣

硬體對效能的影響也是非常大的,甚至是致命的。

影響效能的因素藏在系統應用環境的每乙個角落!!

在乙個儲存過程裡面執行另乙個儲存過程的應用

alter procedure dbo voucheroutbound backinsurance add the parameters forthe stored procedure here iu id int,icc id int,ic id int,uv currentno varchar ...

儲存乙個物件的時候, Django執行下面的步驟

發出乙個預存訊號。它發出乙個將要儲存乙個物件的通知。你可以註冊乙個監聽程式,在訊號發出的時候就會被呼叫。預處理資料。對於物件的每個字段,將根據需要進行自動的資料修改。大部分欄位並不預處理,它們會保持它們原來的樣子。預處理僅僅用在那些有特殊性質的字段,比如檔案字段。為資料庫準備資料。每乙個欄位先要把當...

乙個儲存過程

create or replace package abc zys is procedure daily census end abc zys 建乙個包,包中有儲存過程daily census。不涉及任何引數。create or replace package body abc zys is pro...