oracle快取設定

2021-09-01 06:57:27 字數 2582 閱讀 5621

oracle快取設定(整理)

oracle快取由兩個引數控制sga_target和pga_aggregate_target,設定了這兩個引數,其他的基本記憶體部分都由oracle自動配置為最優值,這也是oracle推薦的方式。

sga_target 和pga_aggregate_target是動態引數,可以在不重啟資料庫的情況下修改。但是sga_target受限於 sga_max_size,sga_target不能超過sga_max_size,所以要增大sga_target先要增大sga_max_size,而sga_max_size是靜態引數,修改sga_max_size必須重啟oracle。

所以修改sga_target和pga_aggregate_target的過程如下:

1、修改sga_max_size

sql>alter system set sga_max_size=4g scope=spfile;

2、重啟oracle

3、設定引數sga_target和pga_aggregate_target,

alter system set sga_target=4g;

alter system set pga_aggregate_target=1g;

如果使用的是10g,已經是asm, oracle會根據統計的資訊,自動的來調整你的記憶體元件的大小,你只需要設定sga_target即可。當然你可以手動設定 db_cache_size,如果設定了的話,oracle會在自動調整記憶體大小的時候把這個作為db_cache_size的最小值。

對於sga_target,在動態修改的時候,最大值不能操過sga_max_size, 如果是 用scope=spfile這個方式來修改可以超過sga_max_size,應該此時sga_max_size也跟著變大了,如果超過的話。

oracle 對資料庫的cache有他自己的計算的,10g以後,記憶體是動態的根據對你使用系統的統計來進行調整的,如果出現問題,這塊不是原因,你之所以db cache還沒有上去,可能是訪問的資料比較少,不過你加大db_cache_size的值,會保留這個記憶體空間的,但是也是一樣的,資料 load到記憶體裡,才看得到變化。

資料訪問是什麼樣的訪問,你的系統是olap還是oltp,這些應用上的東西對你的決定也有影響的,要謹記,資料庫的優化和維護,不僅僅是dba來做的。如果是到了只能通過dba來做這一步的話,就相當於看病已經到了拿手術刀這一步了。 你的改變帶來的風險和代價最高。

要想減少磁碟讀,只能增大記憶體的使用.樓主可以看看這個檢視v$db_cache_size,並執行下面的查詢:

select block_size, size_for_estimate, size_factor, estd_physical_read_factor, estd_physical_reads from v$db_cache_advice;

oracle在這個檢視中針對db_cache_size的大小會給出一些建議。

下面解釋幾個列的含義

size_for_estimate:估計的cache size大小

size_factor: 估計的cache size大小與當前大小的比值

estd_physical_reads:在估計的cache size大小情況下,會產生的物理讀數量

estd_physical_read_factor:估計的物理讀數量與當前物理讀數量的比值。

例子:size_for_estimate size_factor estd_physical_read_factor estd_physical_reads

20 0.0893 6.1454 270840

40 0.1786 3.0632 135003

60 0.2679 2.4908 109775

80 0.3571 2.1411 94362

100 0.4464 1.9619 86464

120 0.5357 1.8235 80366

140 0.625 1.6081 70873

160 0.7143 1.5038 66275

180 0.8036 1.3957 61510

200 0.8929 1.1541 50861

220 0.9821 1.0089 44465

224 1 1 44072

240 1.0714 0.8524 37568

260 1.1607 0.8184 36068

280 1.25 0.7965 35103

300 1.3393 0.793 34948

320 1.4286 0.7908 34853

340 1.5179 0.7905 34841

360 1.6071 0.7905 34841

380 1.6964 0.7905 34841

400 1.7857 0.7873 34698

從上面的資料中可以看到,當前db_cache_size為224m,其物理讀為44072,增加cache size大小會減少物理讀,當cache size到340m時,物理讀的減少不再明顯,因此db_cache_size大小為340m在目前情況下是乙個合適的值。

由於這裡用的是自動共享記憶體管理方式,應該增加sga_target,這樣db_cache_size大小會相應增加,要增加sga_target要先增加sga_max_size。

mysql 快取設定 mysql快取設定

伺服器端的設定 mysql優化首先要知道mysql快取是如何工作以及如何設定,下面是我從別人部落格上覆制過來了,初學者。mysql每個表都可以表示為磁碟上的乙個檔案,必須先開啟,後讀取。為了加快從檔案中讀取資料的過程,mysqld 對這些開啟檔案進行了快取,其最大數目由 etc mysqld.con...

Ibatis快取設定

cachemodel id cache logic columns type memory readonly true serialize false flushinterval hours 24 property name reference type value strong cachemode...

HTML快取設定

pragma與no cache用於定義頁面快取,不快取頁面 為了提高速度一些瀏覽器會快取瀏覽者瀏覽過的頁面,通過下面的定義,瀏覽器一般不會快取頁面,而且瀏覽器無法離線瀏覽.常見的取值有private no cache max age must revalidate等,預設為private,其作用根據...