【等待事件】db file scattered read
等待事件db file scattered read
等待事件說明
這個等待事件會在一個多塊IO 完成時發生。它通常在“ FULL TABLE SCAN ”(全表掃描)和“ INDEX FAST FULL SCAN ”(索引快速全掃描)期間發生。 Oracle 每次讀取 DB_FILE_MULTIBLOCK_READ_COUNT 連續的資料塊,並將它們分散到 buffer cache 中的 buffer 中。如何做到這一點取決於你所執行的平臺和 Oracle 版本。根據讀取的裝置型別和請求的塊數量,它也有可能有所不同。
這個IO 是一個很正常的活動,而我們要注意的是不必要或緩慢的 IO 活動。如果等待多塊讀的時間很長,那麼需要確定 Oracle 正在對哪些段 / 物件執行讀操作。需要參考 AWR 中“ Tablespace IO ”和“ File IO ”,以及 ADDM 和 ASH 輸出。這些內容中應該顯示哪些表空間 / 檔案正在處理最多的 IO 請求,並顯示了 IO 子系統的速度。表空間 / 檔案涉及“ db file scattered read ”等待將會顯示 "Av Blks/Rd">1 (值大於 1 表示發生了多塊讀)。還需要參閱 AWR 中“ SQL ordered by Reads ”,瞭解任何 SQL 導致高 IO 的線索。
如果啟用了統計資訊,那麼v$sql_plan 也可以提供關於使用 FULL SCAN 的 SQL 語句的線索。有的時候,檢視哪些會話正在執行掃描並跟蹤它們,以確定掃描是否在預期範圍內是很重要的。以下語句可以檢視哪些會話正在引起等待:
SQL> SELECT sid, total_waits, time_waited
FROM v$session_event
WHERE event='db file scattered read'
and total_waits>0
ORDER BY 3,2;
解決方法
理想情況下,當有一種更快、更有選擇性的方法獲取資料時,我們不希望應用程式的SQL 執行 FULL SCAN 。在這種情況下,我們應該使用查詢調優來最佳化 SQL 。一些具體的 "db file scattered read" 調優方法如下:
- 對 SQL 調優通常最有用,也是 IO 效能最佳化的核心
- 需要考慮使用分割槽來減少需要掃描的資料量
- 確定受影響的物件是否分佈比較分散,如果是,可以對該物件進行縮小
- 考慮使用高階壓縮來減少需要訪問的塊的數量
- 由於分散讀是將資料塊讀取到不同緩衝區中,小心使用多個緩衝池和快取選項可能會有所幫助
---- end ----
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31529886/viewspace-2749364/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- db file scattered read等待事件事件
- 事件:db file scattered read事件
- 非空閒的等待事件-db file scattered read事件
- 【TUNE_ORACLE】等待事件之IO等待“db file scattered read”Oracle事件
- 等待事件db file sequential read、db file scattered read和direct read的區別事件
- 非空閒等待事件之:db file scattered read(轉)事件
- 等待事件--db file scattered reads事件
- db file scattered read與事件db file sequential read相類似(轉)事件
- db file sequential read等待事件事件
- 【等待事件】db file sequential read事件
- Oracle:db file scattered readOracle
- 解決db file sequential read與db file scattered read
- 詳解 db file sequential read 等待事件事件
- 找出導致db file scattered read等待事件發生的SQL及其執行計劃事件SQL
- oracle等待事件1分別用表和索引上資料的訪問來產生db file scattered read等待事件Oracle事件索引
- 【TUNE_ORACLE】等待事件之IO等待“db file sequential read”Oracle事件
- 0322理解db file parallel read等待事件2Parallel事件
- 0316理解db file parallel read等待事件Parallel事件
- oracle之 db file sequential read等待事件優化思想Oracle事件優化
- 何時會發生db file sequential read等待事件?事件
- db file sequential read wait event等待事件之二AI事件
- tatspack之十二-db file scattered read-DB檔案分散讀取
- oracle等待事件2構造一個DB File Sequential Read等待事件和構造一個Direct Path ReadOracle事件
- 【kingsql分享】何時出現生db file sequential read等待事件SQL事件
- 等待事件--db file sequential reads事件
- control file sequential read等待事件事件
- db file sequential read事件的發生事件
- 【TUNE_ORACLE】等待事件之IO等待“db file parallel write”Oracle事件Parallel
- [20210315]理解db file parallel read等待事件3.txtParallel事件
- [20210315]理解db file parallel read等待事件4.txtParallel事件
- db file async I/O submit 等待事件優化MIT事件優化
- db file async I/O submit 等待事件說明MIT事件
- Oracle db file parallel write 和 log file parallel write 等待事件 說明OracleParallel事件
- db file async I/O submit等待事件的故障診斷MIT事件
- direct path read/read temp等待事件事件
- read by other session等待事件Session事件
- 等待事件:read by other session事件Session
- 【等待事件】read by other session事件Session