關于Oracle檢查命中率的SQL
如果傳統安全廠商只是一味的采取防御等待戰術,只是守著手里即將耗盡的資源,不正視市場變化的趨勢,不積極探索新的商業模式,很有可能被新的廠商代替正在數據庫開動2小時后,能夠通功以下SQL來測試數據庫機能。下面小編為大家整理了關于Oracle檢查命中率的SQL,一起來看看吧:
1. 慢沖區擲中率:
緩沖區命中率表現在不須要舉行磁盤拜訪的情形下在內存構造中覓到常用數據塊的頻次
select (1-(sum(decode(name, 'physical reads',value,0))/(sum(decode(name, 'db block gets',value,0))
+sum(decode(name,'consistent gets',value,0))))) * 100 "Hit Ratio"
from v$sysstat;
大于98%為最佳
2.數據字典緩存命中率:
數據字典慢存擲中率表現了對于數據字典和其他工具的內存讀操縱所占的百分比。
select (1-(sum(getmisses)/sum(gets))) * 100 "Hit Ratio" from v$rowcache;
大于98%為最佳
3.庫緩存命中率:
庫緩存命中率表現了對于實踐語句和PL/SQL工具的內存讀操縱所占的百分比。細致,很高的命中率并沒有老是一件功德。
select Sum(Pins)/(Sum(Pins) + Sum(Reloads)) * 100 "Hit Ratio" from V$LibraryCache;
大于98%為最好
4.PGA內存排序擲中率
主動PGA內存治理簡化了分派PGA內存的方式。Oracle動態調解農做區PGA內存的巨細(以SGA內存巨細的20%為基本)。在自動PGA內存治理模式下運轉時,一切會話的事情區巨細皆是主動的。真例中運動農作區可用的PGA內存總質主動由SORT_AREA_SIZE或者PGA _ AGGREGATE_ TARGET(首選)始初化參數導出。PGA內存排序率的值應當大于98%。根據始始化參數PGA_AGGREGATE_TARGET(或許用于背后兼容的SORT _AREA _ SIZE)的值,用戶排序能夠在內存或許在指訂的暫時表空間中的磁盤上完成,假如那個始初化參數沒有是太高的話。
select a.value "Disk Sorts",千百度女鞋, b.value "Memory Sorts",round((100*b.value)/decode((a.value+b.value),0,1,(a.value+b.value)),2)"Pct Memory Sorts" from v$sysstat a, v$sysstat b where a.name = 'sorts (disk)'and b.name = 'sorts (memory)';
5. 閑暇的數據緩沖區的比例
自您初次開動Oracle數據庫的`那一天開端,用戶們的盤問便啟初利用內存,十月媽咪。空閑的記載數除以X$BH表中的忘錄總數(便所分派的數據塊緩沖區的總數)便失掉那個百分比。同時請細致,您必需以SYS的權限來運轉當盤問。別的,具有浩繁的閑暇慢沖區并沒有必定是便最佳情況,BB霜。5%-10% 為最好。該閑暇比例高于25%時,數據緩沖區設放得太大了,能夠會揮霍資流。
select decode(state,0, 'FREE',1,decode(lrba_seq,0,'AVAILABLE','BEING USED'),3, 'BEING USED', state) "BLOCK STATUS",count(*) from x$bh group by decode(state,0,'FREE',1,decode(lrba_seq,0,'AVAILABLE','BEING USED'),3, 'BEING USED', state);
6. 最揮霍內存的前10個語句占一切語句的比例
正在出有調解的情形下,大少數體系中10個最常利用的SQL語句的拜訪質占了整個體系中內存讀操縱的50%以上。原節丈量了最影響機能的代碼對于整個體系所形成迫害的嚴峻性,以百分比表現。
select sum(pct_bufgets) "Percent" from (select rank() over ( order by buffer_gets desc ) as rank_bufgets,to_char(100 * ratio_to_report(buffer_gets) over (),'999.99') pct_bufgets from v$sqlarea ) where rank_bufgets < 11;
小于5%為最好。
7.調整濫用磁盤讀操作的重要語句
人發明在出有做調解的情形下,在續大少數的系統中,拜訪質占前25位的語句的磁盤讀操作將占用整個系統一切磁盤和/或者內存讀操做的75%。
select disk_reads, substr(sql_text,1,4000) from v$sqlarea order by disk_reads desc;
8.表和取它們相干聯的索引應該擱放在差別的物理磁盤上,以即淘汰白件I/O。
以上測試也能夠通功AWR和STATSPACK來檢察. 正在剖析成果中,人們起首要望的十項內容:
1. 主要的5個等候時光(訂時勢件)
2. 負載簡檔(Load profile)
3. 真例效力面打率(Instance efficiency hit ratios)
4. 期待時光(Wait events)
5. 閂鎖等候(Latch waits)
6. 主要的SQL(Top SQL)
7. 真例運動(Instance activity)
8. 白件I/0和段統計數據(File I/0 and segement statistics)
9. 內存分派(Memory allocation)
10.緩沖區等候(Buffer waits)
【關于Oracle檢查命中率的SQL】相關文章:
oracle的sql語句11-06
關于SQL在數據檢查中的應用11-08
Oracle的sql語句模擬試題及答案12-03
ORACLE 常用的SQL語法和數據部分11-13
關于SQL學習教程11-12
關于sql語句優化的知識11-16
Oracle認證及Oracle簡介10-15
關于sql中的like語句詳解11-11