oracle.exe 內存占用過大


現象:

明明各個schema 占用的磁盤空間都不大。 oracle.exe 卻占用了差不多 3G 的內存。

解決:

查了google,各種英文關鍵字沒有找到原因。 最后,中文檢索到了。

https://www.zhihu.com/question/31583228

oracle.exe一直占很大內存,正常服務時將近7G,服務器內存才12G,是什么原因?

Oracle一線DBA簡答。
不要迷信所謂大牛。這種問題隨便抓個搞Oracle數據庫的即可。
Oracle內存組件中,有一個叫做SGA的部分,這個部分如果設置了7G,啟動之后,立馬從內存中分割出7G,哪怕當前Oracle只用了100M。這7G也是不可以被其他任何機制回收和利用的。
而且Oracle是典型的耗內存應用,SGA組件里的BufferCache放的是真實的用戶數據。可以避免分散的磁盤操作,而直接在SGA中完成對數據庫的修改加工。
SGA是主要占內存的組件。其他PGA等等為用多少分配多少的基本原則。會發生回收機制的。
除此之外,你可以通過show parameter sga查看SGA的具體設置。

因此,用了下面的命令解決了。
alter system set sga_target=800m scope=both

 

另外,下面的文章也可以參考

http://www.orafaq.com/wiki/SGA_target

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM