達夢8——內存參數分析



一、內存簡介

達夢數據庫的內存使用簡單可以分為如下三部分:

select * from v$mem_pool;
select * from v$dm_ini where para_NAME = 'MEMORY_POOL';

 

 

 

 

 

達夢數據庫系統使用的內存分為3部分。
分別是緩沖區內存、主內存、其他內存。

 

二、達夢內存詳解

1、緩沖區

緩沖區內存分為

(1)數據緩沖區

  • normal緩沖區,對應的ini參數是buffer,
  • keep緩沖區,常駐的數據都放在keep數據頁中,對應的ini參數就是keep,
  • recycle緩沖區,高並發系統、使用with as語句較多,臨時數據較多需要將這個recycle數據頁所占用的內存值調大,對應的ini參數是recycle。記住所有的頁大小在初始化實例時已經設定好了,現在使用ini參數修改的是緩沖區內存大小。
  • fast緩沖區,fast包含數據頁和回滾頁, 常駐緩沖區,這兩者都是由系統自動管理,無需用戶干涉對應的ini參數是fast_pool_pages和fast_roll_pages,代表fast緩沖區的大小為多少個數據頁。,
select * from v$dm_ini where para_NAME = 'BUFFER';
select * from v$dm_ini where para_NAME = 'KEEP';
select * from v$dm_ini where para_NAME = 'RECYCLE';
select
* from v$dm_ini where para_NAME = 'FAST_POOL_PAGES';

select * from v$dm_ini where para_NAME = 'FAST_ROLL_PAGES';

 

有個視圖v$bufferpool代表了數據緩沖區所有的pool,咱看這個視圖的查詢結果:

 

 通過v$bufferpool視圖和這個sql,可以大致算出數據緩沖區的總大小

select sum(n_pages * page_size) from v$bufferpool; 

 

 

(2)日志緩沖區

redo_log日志在寫入磁盤前,先寫入在日志緩沖區中,最后在機會合適時再寫入日志緩沖區。對應的ini參數是RLOG_BUF_SIZE

select * from  V$DM_INI WHERE PARA_NAME = 'RLOG_BUF_SIZE';  單位是頁數量
SELECT * FROM v$rlog;

 

(3)sql緩沖區

  • 所需執行的sql執行計划,sql,結果集都會在緩存在sql緩沖區中。
  • v$cacheitem,記錄了當前sql緩沖區的使用情況。此外,v$cachepln、v$cachers、v$cachesql分別記錄了執行計划緩存、結果集緩存、SQL語句緩存(注:這些視圖都是在參數USE_PLN_POOL !=0才統計,其中結果集緩存還受rs_can_cache、rs_cache_tables、rs_cache_min_time參數控制)。
  • 對於SQL類別多、包比較多的系統可適當調大該參數。
  • 常用 Select sum(item_size) from v$cacheitem 來計算SCP的大小。(存疑,這個結算結果和cache——pool——size的值不一樣)
select * from v$dm_ini where para_NAME = 'CACHE_POOL_SIZE'; 單位是M
SELECT * FROM V$CACHEPLN;

 

(4)數據字典緩沖區

數據庫對像比如表,索引,視圖,序列,同義詞,觸發器,存儲過程的信息都緩存在數據字典緩沖區中

在數據庫對象較多時,可適當增大該參數。通過查詢select total_size,used_size FROM v$dict_cache

select * from  V$DM_INI WHERE PARA_NAME = 'DICT_BUF_SIZE';  

若想知道字典緩沖區中緩存對象的詳細信息需查詢視圖v$dict_cache_item SELECT
* FROM V$DICT_CACHE_ITEM ;

 


免責聲明!

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



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