1、產生原因
db file sequential read這個是非常常見的I/O 相關的等待事件。表示發生了與索引掃描相關的等待。意味着I/O 出現了問題,通常表示I/O競爭或者I/O 需求太多。
db file parallel read這個事件表明會話正在並行執行多個讀取的需求。
2、確定產生問題原因的對象
awr報告“SQL ordered by Reads”、v$sql視圖中i/o較多的sql。
3、解決辦法
(1)塊讀取通常是不可避免的,但可以通過最小化不必要的IO 以避免不必要的塊讀取。
(2)檢查使用了不合適的索引掃描的SQL,優化SQL 語句。
(3)可能的話,加大SGA 中的數據庫緩存池以緩沖更多的數據庫表塊和索引塊。
(4)重新組織數據庫表,比如使用export、import、數據泵或者CTAS 以使表有更好的聚集。
(5)通過awr報告中的“File I/O Statistics”部分或者v$filestat 視圖找出熱點的磁盤將讀取較頻繁的數據文件分散到不同的磁盤以均衡io。
(6)可以考慮rebuild索引。
(7)判斷表是否適合分區以減少需要查詢的數據塊總數。