oracle記憶體調整相關
db_cache_size與sga_target關係
db_cache_size設定buffer cache的大小與DB_BLOCK_SIZE相關
當sga_target設定非零時,如果沒有設定預設為零(由oracle調整),如果設定,表示使用者指定的最小值。
如果sga_target沒有設定,預設值為48m或者4MB * number of CPUs * granule size,以較大者為主。
sga_target設定所有sga元件的大小包括如下
Buffer cache (DB_CACHE_SIZE)
* Shared pool (SHARED_POOL_SIZE)
* Large pool (LARGE_POOL_SIZE)
* Java pool (JAVA_POOL_SIZE)
* Streams pool (STREAMS_POOL_SIZE)
如果這些值未設定,由oracle分配,如下池不由自動記憶體管理控制
* Log buffer
* Other buffer caches, such as KEEP, RECYCLE, and other block sizes
* Fixed SGA and other internal allocations
計算buffer cache命令中率
SELECT NAME, VALUE
FROM V$SYSSTAT
WHERE NAME IN ('db block gets from cache', 'consistent gets from cache', 'physical reads cache');
公式:
1 - (('physical reads cache') / ('consistent gets from cache' + 'db block gets from cache')
如果命中率小於90%應該考慮增加buffer cache
buffer cache按段來儲存db_block並按大小分為keep pool和recycle pool
keep儲存高頻率訪問的段,recycle設定可防止不必要的default buffer佔用
alter table tablename storage(buffer_pool keep);
計算緩衝池的命中率
SELECT NAME, PHYSICAL_READS, DB_BLOCK_GETS, CONSISTENT_GETS,
1 - (PHYSICAL_READS / (DB_BLOCK_GETS + CONSISTENT_GETS)) "Hit Ratio"
FROM V$BUFFER_POOL_STATISTICS;
檢視物件在buffer cache中的段的大小
SELECT o.OBJECT_NAME, COUNT(*) NUMBER_OF_BLOCKS
FROM DBA_OBJECTS o, V$BH bh
WHERE o.DATA_OBJECT_ID = bh.OBJD
AND o.OWNER != 'SYS'
GROUP BY o.OBJECT_NAME
ORDER BY COUNT(*);
SELECT DATA_OBJECT_ID, OBJECT_TYPE
FROM DBA_OBJECTS
WHERE OBJECT_NAME = UPPER('segment_name');
segment_name一般為資料庫物件名。
select * from v$sga_dynamic_component;
share pool
包括library cach與directory cache
前者儲存plsql塊和sql語句
後者儲存資料字典
alter parameter set cursor_sharing=similar;
設定遊標共享可以重用相同sql語句
查詢時最好用繫結變數方式,查詢時物件標識使用schema.表物件格式,這些都會起到最大化使用share cache的目地
如果經常使用sequence可以使用alter sequence sequencename cache value;使用cache儲存sequence
檢視library cache的資訊
SELECT NAMESPACE, PINS, PINHITS, RELOADS, INVALIDATIONS
FROM V$LIBRARYCACHE
ORDER BY NAMESPACE;
計算命中率
select sum(PINS),sum(PINHITS) from v$LIBRARYCACHE order by namespace;
計算公式:
sum(PINHITS)/sum(PINS);
share pool分析檢視
V$SHARED_POOL_ADVICE
V$LIBRARY_CACHE_MEMORY
V$JAVA_POOL_ADVICE
V$JAVA_LIBRARY_CACHE_MEMORY
計算dircotry cache命中率
檢視directory cache相關資訊
SELECT parameter
, sum(gets)
, sum(getmisses)
, 100*sum(gets - getmisses) / sum(gets) pct_succ_gets
, sum(modifications) updates
FROM V$ROWCACHE
WHERE gets > 0
GROUP BY parameter;
命中率
SELECT (SUM(GETS - GETMISSES - FIXED)) / SUM(GETS) "ROW CACHE" FROM V$ROWCACHE;
large pool用途:並行查詢,恢復管理,共享服務(共享模式)
CURSOR_SPACE_FOR_TIME使用者可以通過設定這個引數為True,使得Oracle使用更多的Shared SQL Area去儲存SQL,從而提高反覆執行SQL解析的速度
SESSION_CACHED_CURSORS,就是說的是一個session可以快取多少個cursor,讓後續相同的SQL語句不再開啟遊標,從而避免軟解析的過程來提高效能
ALTER SESSION SET SESSION_CACHED_CURSORS = value;
DBMS_SHARED_POOL將常用物件放入share pool,忽略LRUDBMS_SHARED_POOL.KEEP 常用遊標,plsql,sequence
設定設定CURSOR_SHARING值(similar,force)提高相似語句查詢效能
redo log buffer
LGWR寫redo log在下列三種情況
log buffer三分之一
LGWR呼叫commit roolback時
DBWR呼叫LGWR時
批量提交可以提升log buffer效能
當載入大數量資料時使用nologing引數
預設值
MAX(0.5M, (128K * number of cpus))
PGA
儲存排序操作,雜湊連線,點陣圖合併,點陣圖建立
預設大小為sga 20%由PGA_AGGREGATE_TARGET設定
OLTP PGA_AGGREGATE_TARGET
= (total_mem
* 80%) * 20%
DSS PGA_AGGREGATE_TARGET
= (total_mem
* 80%) * 50%
total_mem為可用的作業系統記憶體
檢視pga資訊
SELECT * FROM V$PGASTAT;
pga命中率
SELECT NAME, CASE WHEN unit='bytes' THEN VALUE/1024/1024 ELSE VALUE END AS VALUE, unit
from v$pgastat
命中率[bytes processed]/([bytes processed] + [extra bytes read/written]) * 100
V$PROCESS查詢每個oracle程式連線的例項
V$PROCESS_MEMORY查詢每個型別
V$SQL_WORKAREA 顯示被SQL遊標使用的工作區資訊
相關文章
- oracle 記憶體引數調整優化相關傾力整理Oracle記憶體優化
- oracle for aix記憶體調整OracleAI記憶體
- oracle 記憶體引數調整最佳化相關傾力整理Oracle記憶體
- Oracle記憶體分配與調整Oracle記憶體
- Oracle - 資料庫的記憶體調整Oracle資料庫記憶體
- oracle例項記憶體(SGA和PGA)調整Oracle記憶體
- Oracle調整緩衝區快取記憶體Oracle快取記憶體
- weblogic 記憶體調整Web記憶體
- Oracle效能最佳化調整--調整緩衝區快取記憶體Oracle快取記憶體
- Oracle 10g的記憶體調整報告Oracle 10g記憶體
- MySQL記憶體引數及調整MySql記憶體
- Tomcat記憶體引數調整Tomcat記憶體
- oracle之 調整 I/O 相關的等待Oracle
- 記憶體優化相關記憶體優化
- iOS記憶體管理相關iOS記憶體
- 達夢記憶體調整及修改方法記憶體
- solaris記憶體引數調整及管理記憶體
- KVM之十一:調整cpu和記憶體記憶體
- 共享記憶體相關(ipcs/ipcrm)記憶體
- TOMCAT記憶體溢位及大小調整Tomcat記憶體溢位
- oracle&linux環境vm相關的調整OracleLinux
- Oracle記憶體引數調優Oracle記憶體
- windows2000+oracle記憶體8G SAG調整(一)WindowsOracle記憶體
- SAP ECC6.0記憶體引數調整和調優記憶體
- 自動記憶體調整中真正決定自動調整的引數記憶體
- iOS 記憶體管理相關面試題iOS記憶體面試題
- golang的記憶體相關內容Golang記憶體
- [android]記憶體分析相關文件Android記憶體
- win10怎麼調整虛擬記憶體_win10怎麼調虛擬記憶體Win10記憶體
- Linux 核心引數 和 Oracle相關引數調整LinuxOracle
- Linux 核心引數及Oracle相關引數調整LinuxOracle
- AIX5L記憶體監控和調整AI記憶體
- Weblogic Admin Server , Managed Server記憶體調整WebServer記憶體
- 記憶體壓力及IO壓力調整方法記憶體
- Oracle記憶體詳解之一 整體架構Oracle記憶體架構
- TimesTen臨時(記憶體)空間使用和調整臨時(記憶體)空間記憶體
- Oracle效能調整筆記Oracle筆記
- windows memeory 記憶體相關術語Windows記憶體