oracle記憶體中bufferCache修改

2021-07-01 23:10:33 字數 1169 閱讀 3196

1,檢視曲線,找出適合的值

一般情況下,我們選取estd_physical_read_factor為1的值為最佳,或者為sga_max_size/2~sga_max_size*2/3。

select size_for_estimate "cache size (mb)",size_factor,buffers_for_estimate "buffers",

estd_physical_read_factor est_read_factor,

estd_physical_reads estd_phy_red,estd_physical_read_time est_phy_red_t

from v$db_cache_advice

where name='default' and block_size =(select value from v$parameter where name='db_block_size');

2,檢視sga的最大值

show parameter sga_max_size;

如果大小不夠,擴大sga大小。

alter system set sga_max_size=***m scope=spfile;

再設定sga大小

alter system set sga_target=***m scope=spfile;

3,重啟資料庫

4,設定buffercache大小

alter system set db_cache_size=***m scope=both;

完成。關於scope引數的設定:

應該是scope=both和scope=spfileoracle

裡面有個叫做spfile的東西,就是動態引數檔案,裡面設定了oracle 的各種引數。

所謂的動態,就是說你可以在不關閉資料庫的情況下,更改資料庫引數,記錄在spfile裡面。

更改引數的時候,有4種scope選項,scope就是範圍。

1,scope=spfile 僅僅更改spfile裡面的記載,不更改記憶體,也就是不立即生效,而是等下次資料庫啟動生效。有一些引數只允許用這種方法更改。

2,scope=memory 僅僅更改記憶體,不改spfile。也就是下次啟動就失效了。

3,scope=both 記憶體和spfile都更改。

4,不指定scope引數,等同於scope=both。

linux記憶體中buffer和 cached的比較

經常遇到一些剛接觸linux的新手會問記憶體占用怎麼那麼多?在linux中經常發現空閒記憶體很少,似乎所有的記憶體都被系統占用了,表面感覺是記憶體不夠用了,其實不然。這是linux記憶體管理的乙個優秀特性,在這方面,區別於windows的記憶體管理。主要特點是,無論物理記憶體有多大,linux 都將...

linux 記憶體中Buffer和Cache的區別

具體怎麼理解?通過實驗發現,比較寫資料到檔案和寫資料到磁碟 比較從檔案中讀取資料和從磁碟中讀資料 實驗資料參考 簡單理解 buffer 是對磁碟資料的快取,而 cache 是檔案資料的快取。同學 geek 5258f8 的解答 理論上,乙個檔案讀首先到block buffer,然後到page cac...

記憶體中的Buffer和Cache

這個介面包含了物理記憶體mem和交換分割槽swap的使用情況,其中包括以用記憶體 快取 可用記憶體等。其中快取是buffer和cache這兩部分的總和。從字面意思理解,buffer和cache分別代表緩衝區和快取的意思,二者都是資料再記憶體中的臨時儲存。buffers是核心緩衝區用到的記憶體,對應的...