Oracle記憶體參數配置及版本問題

來源:互聯網
上載者:User

標籤:

      Oracle的記憶體配置與Oracle效能息息相關。從總體上講,可以分為兩大塊:共用部分(主要是SGA)和進程獨享部分(主要是PGA)。在 32 位作業系統下 的Oracle版本,不時有項目反饋關於記憶體的錯誤(如ORA-04030、04031錯誤)都是十分令人頭疼的問題。查閱資料瞭解到,ORA-04030的問題一般是PGA資源過度分派造成的(對應的操作是sort/hash_join)。在Oracle中pga_aggregate_target指定了所有session總共使用的最大PGA上限。經測實驗證,32位Oracle版本使用的實體記憶體保持在 1.6G以下為佳(SGA+PGA),超過 1.7G左右系統開始不穩定,推薦的記憶體配置為:SGA=1200M,PGA=360M;

調整記憶體參數的命令樣本如下:

alter system set sga_max_size=1200M scope=spfile;alter system set sga_target=1200M scope=spfile;alter system set pga_aggregate_target=360M scope=spfile;

 

      另外,建議使用的Oracle版本:10.2.0.5、11.2.0.3/4;對於64位版本,建議先把20%的記憶體留給作業系統,剩餘80%分配給Oracle(其中SGA=實體記憶體*80%*80%,PGA=實體記憶體*80%*20%)。

      曾經在多重專案上發現過奇怪的現象,一個較複雜的SQL,直接執行或查看執行計畫,作業系統中可以看到CPU立刻飆到99%,而且即使等待很長時間(比如2分鐘,對於一個各表資料量小於10K的查詢,哪怕都走全表掃描也應該執行完的,2分鐘實在是太久了),CPU也不會降下來,SQL命令也無法正常結束,只能強制終止該會話或Oracle進程。該SQL訪問的所有表的資料量都不是很大(小於10K),更新統計資料等都沒有效果。我分別在Windows和Linux平台下的測試環境驗證過,問題都能夠重現,當然如果將SQL指令碼簡化也能解決,但沒有明顯的規律、規則,感覺應該是Oracle的bug,最後都是通過升級到最新版本解決的。

 

如分頁SQL指令碼(MV_118_CTLIST_03為視圖):

SELECT MV_118_CTLIST_03."CTLIST_Name"    , MV_118_CTLIST_03."CTLIST_Depart_LSBMZD_BMMC"    , MV_118_CTLIST_03."CTLIST_Value"    , MV_118_CTLIST_03."CTLIST_Handler_LSZGZD_ZGXM"    , QRY_WORKITEM.STARTEDDATE    , QRY_WORKITEM.COMPLETEDDATE    , QRY_WORKITEM.PROCESSINSTANCEID    , QRY_WORKITEM.ACTIVITYDEFINITIONID    , QRY_WORKITEM.PROCESSDEFINITIONID    , QRY_WORKITEM.ActivityInstanceId    , QRY_WORKITEM.WORKITEMID    , QRY_WORKITEM.WORKTYPEFROM QRY_WORKITEM     JOIN MV_118_CTLIST_03 ON ROOTPROCINSTID = MV_118_CTLIST_03."CTLIST_SPID"    JOIN (SELECT PK          FROM (SELECT PK, rownum rowNumber                FROM (SELECT WORKITEMID AS PK                      FROM QRY_WORKITEM                          JOIN MV_118_CTLIST_03 ON ROOTPROCINSTID = MV_118_CTLIST_03."CTLIST_SPID"                      WHERE QRY_WORKITEM.Participant = ‘5b181b7c-8ea8-45a5-b35d-a90aed0725dc‘                         AND QRY_WORKITEM.State = ‘2‘                         AND QRY_WORKITEM.BIZPROCID = ‘0fad699e-a787-4fb6-bbff-8d3382f6d37f‘                      ORDER BY STARTEDDATE)                WHERE rownum <= 20)          WHERE rowNumber >= 1) tblPK ON workitemid = tblPK.PKWHERE QRY_WORKITEM.Participant = ‘5b181b7c-8ea8-45a5-b35d-a90aed0725dc‘     AND QRY_WORKITEM.State = ‘2‘     AND QRY_WORKITEM.BIZPROCID = ‘0fad699e-a787-4fb6-bbff-8d3382f6d37f‘ ORDER BY STARTEDDATE
 

Oracle記憶體參數配置及版本問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.