hit 命中率

來源:互聯網
上載者:User

 

1 BUFFER命中率
也就是通常所說快取的命中率,這個指標是指通過記憶體得到訪問的資料和所有訪問的資料之間的一個比例。
正常指標範圍:
    Buffer命中率正常的指標為:90%-100%,但在資料庫繁忙運行期間(批處理應用、資料倉儲),Buffer命中率可能低於90%,這是正常的指標。
計算公式:
   Buffer hit =(1-physical reads cache /(consistent gets from cache + db block gets from cache)) *100
其中:
 physical reads cache = physical reads - physical reads direct -  physical read direct(LOB)
 consistent gets from cache = consistent gets
 db block gets from cache = db block gets

可以通過SQL查詢數所庫效能字典得到資料庫快取的命中率
select round((1 - (physical.value - direct.value - lobs.value)/logical.value)*100,2) "Buffer Cache Hit Ratio"
from v$sysstat physical,v$sysstat direct,v$sysstat lobs,v$sysstat logical
where physical.name ='physical reads'
  and direct.name ='physical reads direct'
  and lobs.name ='physical reads direct (lob)'
  and logical.name ='session logical reads';

影響因素:
1. Buffer 命中率受Oracle SGA中的data block buffers參數的設定影響
2. 跟Oracle buffer Pool的使用方法有關
3. 把經常使用的小表cache在記憶體中
4. 調優SQL語句,以養活少訪問的資料量

2 LIBRARY命中率
就是通常所說的庫緩衝的命中率。指的是在Oracle執行SQL語句的過程中,通過記憶體直接得到對象的命名空間。
正常指標範圍:
Library命中率正常指標範圍為:95%-100%
計算公式:
 Library hit = sum(pins)/(sum(pins)+sum(reloads)) *100

可以通過SQL查詢得到庫緩衝的命中率
select round(sum(pins -reloads)/sum(pins)*100,2) "Library Cache Hit Ratio"
from v$librarycache;

影響因素:
1. Library命中率受Oracle SGA中的shared pool參數設定影響
2. 跟應用軟體的開發有密切的關係,特別是共用SQL的使用

3 LATCH命中率
Latch是一種簡單的低級序列化機制,用於保護系統全域區中的共用資料結構。如:保護當前正在止訪問資料庫的使用者列表,保護描述緩衝區中的塊的資料結構。對於伺服器或後台進程來說,必須取得伴隨的LATCH才能開始操作或查看共用的資料結構,而在完成後,又必須釋放伴隨的LATCH,LATCH的實施和作業系統的平台有關,尤其與進程是否需要等待LATCH以及需要等待多長時間有關。
正常指標範圍:
LATCH命中率正常指標範圍為:99%-100%
計算公式:
 Latch hit = (1 - sum(misses + immediate_misses)/sum(gets+immediate_gets) ) * 100

可以通過SQL查詢得到LATCH命中率
select round((1-sum(misses +immediate_misses)/sum(gets + immediate_gets))*100,2) "Latch Hit Ratio"
from v$latch;

影響因素:
1. 應用程式SQL是否使用綁定變數
2. Shared_pool_size參數的設定

4 In-Memory Sort命中率
這個指標是指在記憶體中完成的排序和硬碟上排序的比率
正常指標範圍:
 In-Memory Sort命中率正常指標範圍為:99%-100%
計算公式:
 In-Memory Sort hit= (1 -sorts(disk)/(sorts(disk)+sorts(memory))) * 100

可以通過SQL查詢得到In-Memory Sort命中率
select round((1 - disk.value/(disk.value + memory.value))*100,2) "In-Memory Sort"
from v$sysstat disk,v$sysstat memory
where disk.name ='sorts (disk)'
and memory.name ='sorts (memory)';

影響因素:
1. 資料庫參數sort_area_size或pga_aggregate_target的大小
2. 應用程式的SQL語句的寫法

5 Buffer NoWait
這個指標是指在緩衝區擷取buffer的未等待比率
正常指標範圍:
 Buffer Nowait率正常指標範圍為:99%-100%
計算公式:
 Buffer Nowait = (1- buffer busy wait / session logical reads) * 100

可以通過SQL查詢得到Buffer NoWait命中率
select round((1 - busy.value/tol.value)*100,2) "Buffer busy NoWait Ratio"
from (select sum(count) value from v$waitstat
where class in ('data block','segment header','undo header','undo block')) busy,
      (select value from v$sysstat
       where name='session logical reads') tol;

影響因素:
1. db_block_buffers或db_cache_size等參數
2. 增加表的Freelist參數
3. 使用Automatic Segment Storge Management(ASSM)來建立資料表空間
4. 最佳化程式使用的SQL語句

6 Redo NoWait
這個指標是指redo緩衝區擷取buffer的未等待比率
正常指標範圍:
Redo Nowait率正常指標範圍為:99%-100%
計算公式:
Redo Nowait = (1- redo log space requests / reso entries) * 100

可以通過SQL查詢得到Redo NoWait命中率
select round((1 - waits.value/redos.value)*100,2) "Redo NoWait Ratio"
from v$sysstat waits,v$sysstat redos
where waits.name ='redo log space requests'
  and redos.name ='redo entries';

影響因素:
1. Log_buffer_size參數設定過小
2. 歸檔的速度太慢
3. 聯機記錄檔太小
4. 聯機記錄檔放在緩慢的磁碟裝置上

7 Execute to Parse
這個指標是指資料庫的SQL語句執行和分析的比例
正常指標範圍:
 Execute to Parse 越接近100%越好
計算公式:
 Execute to Parse = (1- Parses / Executions) * 100

可以通過SQL查詢得到Execute to Parse率
select round((1 - hard.value/total.value)*100,2) "Execute to Parse Ratio"
from v$sysstat hard,v$sysstat total
where hard.name ='parse count (hard)'
and total.name ='parse count (total)';

影響因素:
1. Share_pool_size參數的大小
2. 最重要的影響因素是應用程是否使用了綁定變數

8 Parse CPU to Pares Elapsed
這個指標是指資料庫用在分析的CPU的時間和分析完成CPU時間對比
正常指標範圍:
 Parse CPU to Parse Elapsed  越接近100%越好
計算公式:
 Parse CPU to Parse Elapsed =(1-Parses time cpu/Parses time elapsed)* 100

可以通過SQL查詢得到Parse CPU to Parse Elapsed e率
select round((1 - cpu.value/total.value)*100,2) "Parse CPU to Parse Elapsed Ratio"
from v$sysstat cpu,v$sysstat total
where cpu.name ='parse time cpu'
and total.name ='parse time elapsed';
影響因素:
1. 如果這個比例很低,說明分析過程中CPU等待了其它的資源

9 Non-Parse CPU
這個指標是指資料庫用在非分析的過程中CPU的等待了其它的資源
正常指標範圍:
Non-Parse CPU越接近100%越好
計算公式:
Non-Parse CPU = (1- parse time cpu / CPU used by this session) * 100

可以通過SQL查詢得到Non-Parse CPU率
select round((1 - parse.value/total.value)*100,2) "Non-Parse CPU Ratio"
from v$sysstat parse,v$sysstat total
where parse.name ='parse time cpu'
and total.name ='CPU used by this session'

影響因素:
1. 如果這個比例很低,說明CPU用在分析SQL語句上面消耗了很多CPU時間,可能是沒有用綁定變數

10 Rollback segment竟爭情況
這個是指等待rollback segment的header比率
正常指標範圍:
rollback segment等待率比率越小越好
計算公式:
rollback segment = (waits/gets) * 100

可以通過SQL查詢得到rollback segment等待率
select name,waits,gets,round(waits/gets*100,2) "Ratio"
from v$rollstat a,v$rollname b
where a.usn = b.usn;

影響因素:
1. 復原段竟爭情況受復原段size的設定影響
2. 跟應用軟體的有關,特別是long runnig time transaction的使用

11 Tablespace的I/O比例
這個是指資料表空間的所使用的I/O比例
正常指標範圍:
Tablespace I/O越小越好
計算公式:

可以通過SQL查詢得到Tablespace I/O情況
select df.tablespace_name,sum(f.phyrds),sum(f.phyblkrd),
sum(f.phywrts),sum(f.phyblkwrt)
from v$filestat f,dba_data_files df
where f.file#=df.file_id
group by df.tablespace_name
order by df.tablespace_name;

影響因素:
1. Tablespace的I/O情況受db_block_size參數的設定影響
2. 跟資料檔案的磁碟分布有密切關係

12 Datafile 的I/O比例
這個是指訪問資料檔案所使用的I/O比例
正常指標範圍:
Datafile I/O越小越好
計算公式:

可以通過SQL查詢得到Datafile I/O情況
select df.name,sum(f.phyrds),sum(f.phyblkrd),sum(f.phywrts),sum(f.phyblkwrt)
from v$filestat f,v$datafile df
where f.file#=df.file#
group by df.name
order by df.name;

影響因素:
1. Datafile的I/O情況受db_block_size參數的設定影響
2. 跟資料檔案的磁碟分布有密切關係

13 重做日誌緩衝區命中率
這個是指重做日誌緩衝區的命中率
正常指標範圍:
重做日誌緩衝區的命中率越大越好,應大於90%
計算公式:

可以通過SQL查詢得到日誌緩衝區的命中率
select name,gets,misses,immediate_gets,immediate_misses,
100 - round(decode(gets,0,0,misses/gets *100),2) ratio1,
100 - round(decode(immediate_gets+immediate_misses,0,0,immediate_misses/
(immediate_gets+immediate_misses)*100),2) ratio2
from v$latch
where name in ('redo allocation','redo copy');
影響因素:
1. 受log_buffer_size設定影響
2. 跟應用軟體的有關,特別是共用SQL的使用

14 片段程度
這個是指資料庫中自由空間片段FSFI--Free Space Fragmentation Index (自由空間片段索引)值來直觀體現
正常指標範圍:
FSFI越大越好,應大於30%
計算公式:
 FSFI=100*SQRT(max(extent)/sum(extents))*1/SQRT(SQRT(count(extents)))

可以通過SQL查詢得到日誌緩衝區的命中率
select tablespace_name,sqrt(max(blocks)/sum(blocks))* (100/sqrt(sqrt(count(blocks)))) FSFI
from dba_free_space
group by tablespace_name order by 1tablespace_name;
影響因素:
1. 片段情況受db_block_size,segment_size的設定影響
2. 跟資料區塊設定大小,段的設定大小有密切的關係

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.