體系結構問題解決,1 解決4031錯誤方法

2022-04-08 21:57:08 字數 1025 閱讀 9772

三.解決4031錯誤方法:

(ora-4031錯誤產生原因:大量的硬解析後,導致鏈上的chunk都變的非常小,此時來了乙個大的sql會找不到合適的chunk,就會報ora-4031錯誤。)

如果shared_pool_size 設定得足夠大,又可以排除 bug 的因素,那麼大多數的ora- 04031 錯誤都是由共享池中的大量的sql **等導致過多記憶體碎片引起的。

1.執行alter system flush shared_pool; 清理library cache 和rows cache ,此方法只能臨時解決問題不推薦使用。

原因:(1 )flush shared pool 會導致當前未使用的cursor 被清除出共享池,如果這些 sql 隨後需 要執行,那麼資料庫將經歷大量的硬解析,系統將會經歷嚴重的cpu 爭用,資料庫將會產生 激烈的l atch 競爭。

(2 )如果應用沒有使用繫結變數,大量類似sql 不停執行,那麼flush shared pool 可能 只能帶來短暫的改善,資料庫很快就會回到原來的狀態。

(3 )如果shared poo l 很大,並且系統非常繁忙,重新整理shared pool可能會導致系統掛起, 對於類似系統盡量在系統空閒時進行。

2.方法二: 讓開發人員修改sql語句,實現共享sql,

3.方法三:將較大的物件儲存到記憶體中,

4.方法四:設定合適的shared_pool_reserved_size引數,結合shared_pool_reserved_min_alloc 引數可以用 來避免由此導致的效能下降。這個引數的預設值是shared_pool_size 的5%,通常這個引數的建議值為shared_pool_size引數的10% ~20% 大小,最大不得超過shared_pool_size的50% 。 保留區是在shared_pool中專門用來快取大物件區域,所以可以增加保留區的大小。 #檢視請求保留區的錯誤次數,(若過請求保留區錯誤,就會包4031錯誤) select request_misses from v$shared_pool_reserved; 6.使用amm自動記憶體管理來分配共享池,防止共享池設定小而出錯。(一般做到這一步就可以了)

Powershell問題解決1

在powershell直接指令碼時會出現 無法載入檔案 ps1,因為在此系統中禁止執行指令碼。有關詳細資訊,請參閱 get help about signing 所在位置 行 1 字元 17 e test test.ps1 categoryinfo notspecified pssecurityex...

oom問題解決

dalvik虛擬機會為應用程式分配固定大小的heap 如果使用超過了這個heap的大小,且沒有可被 物件,就會報oom。多張較大會迅速占用空間造成oom。我們可以使用一下的方法來減少這種情況的產生 1.減少單張的大小,根據螢幕大小來對bitmap做resize。private void setima...

too many open files問題解決辦法

今天用 往liunx中寫檔案,檔案很多 執行一會就日誌上就報錯 too many open files 結果找了半天才解決這個問題,現在給大家分享一下。首先用 ulimit a 命令看看linux的open files值是多少,結果乙隻有1024,不夠用的。然後修改linux的配置檔案,修改 etc...