oracle awr 等待事件,3.db file scattered read等待事件
db file scattered read等待事件
原創 2017-07-22 Oracle 宅必備
從今天開始講解awr報告Top 5 Timed Events部分
今天講scattered read等待事件
db file scattered read
物理讀發生在一個用戶需要的數據塊不在SGA,從而將其從磁盤讀取到SGA中
如果此時別的會話需要該數據塊則必須等待這個過程結束,這時就產生了等待
離散讀是物理讀的一種方式,這里的離散指的是讀取數據塊到一塊離散(不連續)的內存區域,而且一般讀取多個數據塊( multi-block read),可能為單個數據庫
如該等待嚴重則說明該數據塊存在嚴重的爭用情況
每次讀取的塊數由DB_FILE_MULTIBLOCK_READ_COUNT參數控制
這點不同于sequential read,可參考下一篇關于sequential read 的文章
下圖為各種讀取方式的比較
何時會發生
多數據塊讀(multi-block read)是由SQL語句引起的(用戶發出或者遞歸調用)
一般發生在以下情況:
全表掃描( full table scans )
索引快速全掃描( index fast full scans)
如何處理
由于物理讀是非常正常的,出現這個等待事件不意味著數據庫出現性能問題
但是如果我們在TOP 5 Wait Event中看到其處于非常前的位置(第二甚至第一)時就需要引起我們的注意了,OLTP系統中應避免此等待
特別需要關注Avg Waits 參數,最好小于10ms,這里可采用如下方法進行解決
將數據文件放在高速磁盤中,提高讀取性能
將數據文件放在LUN(即一些存儲設備)中,可確保數據塊分散在足夠多的磁盤中
在優化磁盤的同時,我們還需要注意應用程序的SQL語句問題,因為一般這種等待都是SQL語句造成的,我們需要找出相應的SQL語句
通過執行計劃進行優化判斷全表掃描或者索引全掃描是否合理,是否使用了合適的驅動表,以需要達到減少物理讀和邏輯讀的目的
執行計劃中 HASH JOIN和SORT MERGE動作(operation)會導致scattered read
可增加 DB_FILE_MULTIBLOCK_READ_COUNT參數的值來減少IO次數
調整HASH_AREA_SIZE 和OPTIMIZER_INDEX_COST_ADJ 參數的值也可用來優化scattered read
保證統計信息的及時性
如下是一些常用的診斷方式,通過下面方式定位到具體的會話,在通過sql_id或hash_value找出具體的語句用于優化
1. 查看當前正在等待的會話
我們可以查看v$session_wait 視圖的TIME_WAITED欄位來定位當前哪個會話等待 scattered read過長時間(實時)
select * from v$session_Wait where event = 'db file scattered read'
P1代表File ID,可通過dba_data_File視圖的FILE_ID字段看出是哪個數據文件
P2代表 First block,即該塊在數據庫上開始的位置
P3代表塊數,該值的取值范圍為1-DB_FILE_MULTIBLOCK_READ_COUNT的值
我們可以通過P1 P2參數得出對象的名稱和類型
select
segment_name,
segment_type
from
dba_extents
where
file_id = 15
and
1106397 between
block_id and (block_id + blocks - 1);
2.查看從實例啟動以來等待的會話
使用 v$session_event視圖來定位哪個會話等待 scattered read過長時間(非實時)
也可使用v$system_event視圖查看系統整體的等待事件
SELECT sid, total_waits, time_waited
FROM v$session_event
WHERE event='db file scattered read'
and total_waits>0
ORDER BY 3 desc ,2
注意由于SID是可以復用的,這樣查出來的有可能有問題
比如查看SID為587的會話對應的語句也有可能是上個SQL語句導致的scattered read等待,這點需要注意
查看高物理讀的數據文件
我們可以通過awr報告中的 Tablespace IO Stats 和File IO Stats 區域來定位最多IO操作的表空間和數據文件,如果可以請將其放置在高速的磁盤中(SSD)
查看高物理讀的SQL語句
同樣可以查看v$sql中高物理讀的語句以及awr SQL ordered by Reads區域
參考資料
總結
以上是生活随笔為你收集整理的oracle awr 等待事件,3.db file scattered read等待事件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php过滤手机特殊字符,php过滤特殊字
- 下一篇: oracle backup arch,O