db_files對於oracle使用記憶體的影響
db_files引數限制了資料庫資料檔案總的個數,datafiles數目達到db_files指定後資料庫不能新增新的資料檔案,如果需要修改要重新重啟資料庫
所以這個引數都會有一定的預留,但是如果預先設定太大的話會影響oracle記憶體的使用
下面採取極端的 200 vs 20000 來做一個簡單的比較
首先我們來看其對SGA的影響
db_files=200
SQL> show sga
Total System Global Area 555559728 bytes
Fixed Size
731952 bytes
Variable Size 385875968 bytes
Database
Buffers 167772160 bytes
Redo Buffers 1179648
bytes
SQL> create table b as select * from v$sgastat;
Table created.
SQL> show parameter db_files
NAME TYPE VALUE
———————————— ———–
————————————————————
db_files integer 200
db_files=20000
Total System Global Area 1444753456 bytes
Fixed Size
733232 bytes
Variable Size 1275068416 bytes
Database
Buffers 167772160 bytes
Redo Buffers 1179648
bytes
Database mounted.
Database opened.
SQL> create table e as select * from v$sgastat;
Table created.
SQL> show parameter db_files
NAME TYPE VALUE
———————————— ———–
————————————————————
db_files integer
20000
可以看出shared pool部分20000的db_files比200的db_files多了848M,這個多出來的值不是固定的,和其他引數還有關係,如果在正式環境上會高出更多
我遇到過db_files引數設定為10000比設定為1000要使用2G空間的情況
上面我對v$sgastat做了兩次snapshot,現在我們可以看看是哪個component佔用了這些空間
SQL> select b.pool,b.name,b.bytes before,e.bytes after,e.bytes-b.bytes
delta from b,e
2 where b.pool=e.pool and b.name=e.name and b.bytes!=e.bytes
order by delta desc;
POOL NAME BEFORE AFTER
DELTA
———– ————————– ———- ———- ———-
shared pool free
memory 300344592 948654528 648309936 – 600M
shared pool
Checkpoint queue 2053120 204805120 202752000 – 200M
shared
pool FileOpenBlock 7517528 16440360 8922832
shared pool
enqueue 1833832 4568752 2734920
shared pool
enqueue resources 662048 3236424 2574376
shared pool KGK
heap 6904 640600 633696
shared pool fixed
allocation callback 560 640 80
shared pool trigger
inform 344 216 -128
shared pool sim memory
hea 1274744 1274040 -704
shared pool KQR M
PO 118832 11288 -107544
shared pool KQR L
PO 414720 235544 -179176
shared pool KGLS
heap 898344 390168 -508176
shared pool
miscellaneous 30526568 29338032 -1188536
shared pool
library cache 4324488 2925224 -1399264
shared pool sql
area 5029320 1234712 -3794608
15 rows selected.
下面來看看對PGA的影響,PGA中有一部分記憶體空間是用來存放opened file descriptors,db_files引數設定越高,這部分預留空間越大
db_files=200
SQL> select min(value) from v$sesstat s,v$statname n
2 where
s.statistic# = n.statistic# and
3 n.name = ’session pga memory’
4 /
MIN(VALUE)
———-
118760
db_files=20000
SQL> select min(value) from v$sesstat s,v$statname n
2 where
s.statistic# = n.statistic# and
3 n.name = ’session pga memory’
4 /
MIN(VALUE)
———-
1866088
如果按照1000個process計算的話,PGA的差距大約為1.6G
SQL> select 1000*(1866088-118760)/power(1024,3) from dual;
1000*(1866088-118760)/POWER(1024,3)
———————————–
1.62732601
所以db_files不要預留太大,否則會大大影響到記憶體空間的使用
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/79499/viewspace-366000/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 記憶體故障對電腦的影響記憶體
- 虛擬記憶體對 OI 的影響記憶體
- JavaScript 事件對記憶體和效能的影響JavaScript事件記憶體
- 雙下劃線開頭的記憶體引數對Oracle AMM行為的影響記憶體Oracle
- max_connections引數對mysql初始化記憶體的影響MySql記憶體
- JDBC記憶體管理—varchar2(4000)的影響JDBC記憶體
- onconfig中對CPU 記憶體的利用率影響的引數記憶體
- JavaScript對記憶體的使用JavaScript記憶體
- RMAN 對記憶體的使用記憶體
- 【原創】ARM平臺記憶體和cache對xenomai實時性的影響記憶體AI
- oracle cardinality對於執行計劃的影響Oracle
- hashCode竟然不是根據物件記憶體地址生成的?還對記憶體洩漏與偏向鎖有影響?物件記憶體
- oracle實驗記錄 (predicate對cpu cost的影響)Oracle
- 關於記憶體對齊記憶體
- 【Oracle】-【COMMIT對索引的影響】-從trace看COMMIT對索引的影響OracleMIT索引
- Oracle的記憶體分配和使用Oracle記憶體
- 遊戲暗示對於遊戲玩家的影響遊戲
- 關於OPcache對Swoole影響的理解opcache
- JAVA 異常對於效能的影響Java
- 關於drop操作對role的影響
- c盤記憶體不足會影響絕地求生閃退嗎_c盤記憶體不足影響絕地求生閃退解決方法記憶體
- 17、python對記憶體的使用Python記憶體
- Oracle PGA記憶體的配置和使用Oracle記憶體
- 嚴格模式下對於this指向的影響模式
- reverse index 對於 MAX/MIN操作的影響Index
- 淺談SQL Server 對於記憶體的管理SQLServer記憶體
- 2G還是4G?淺談視訊記憶體對遊戲的影響有多大記憶體遊戲
- 修改系統時間對oracle的影響Oracle
- Oracle主鍵選擇對插入的影響Oracle
- Oracle記憶體分配與使用(zt)Oracle記憶體
- aix +oracle 記憶體使用說明AIOracle記憶體
- 【記憶體管理】Oracle如何使用ASMM自動共享記憶體管理記憶體OracleASM
- 小記: 關於CSS display 屬性對錶格語義的影響CSS
- padding對於元素position定位的影響padding
- 重啟mysql對於auto_increment的影響MySqlREM
- 使用記憶體對映檔案(mmap)記憶體
- 修改主機時區對Oracle的影響分析Oracle
- oracle點陣圖索引對DML操作的影響Oracle索引