Oracle中的direct path read事件(轉)
在11g中,全表掃描可能使用direct path read方式,繞過buffer cache,這樣的全表掃描就是物理讀了。 在10g中,都是透過gc buffer來讀的,所以不存在direct path read的問題。
direct path read較高的可能原因有:
1. 大量的磁碟排序操作,order by, group by, union, distinct, rollup, 無法在PGA中完成排序,需要利用temp表空間進行排序。 當從臨時表空間中讀取排序結果時,會產生direct path read.
2. 大量的Hash Join操作,利用temp表空間儲存hash區。
3. SQL語句的並行處理
4. 大表的全表掃描,在中,全表掃描的演算法有新的變化,根據表的大小、快取記憶體的大小等資訊,決定是否繞過SGA直接從磁碟讀Oracle11g取資料。而10g則是全部透過快取記憶體讀取資料,稱為table scan(large)。11g認為大表全表時使用直接路徑讀,可能比10g中的資料檔案雜湊讀(db file scattered reads)速度更快,使用的latch也更少。
大量的direct path read等待時間最可能是一個應用程式問題。
direct path read事件由SQL語句驅動,這些SQL語句執行來自臨時的或常規的表空間的直接讀取操作。
當輸入的內容大於PGA中的工作區域時,帶有需要排序的函式的SQL語句將排序結果寫入到臨時表空間中,
臨時表空間中的排序順序串隨後被合併,用於提供最終的結果。讀取排序結果時,
Oracle會話在direct path read等待事件上等待。
DB_FILE_DIRECT_IO_COUNT初始化引數可能影響direct path read的效能。
一個隱含引數:
_serial_direct_read = false 禁用direct path read
_serial_direct_read = true 啟用direct path read
alter sytem set "_serial_direct_read"=never scope=both sid='*';
可以顯著減少direct path read
direct path read較高的可能原因有:
1. 大量的磁碟排序操作,order by, group by, union, distinct, rollup, 無法在PGA中完成排序,需要利用temp表空間進行排序。 當從臨時表空間中讀取排序結果時,會產生direct path read.
2. 大量的Hash Join操作,利用temp表空間儲存hash區。
3. SQL語句的並行處理
4. 大表的全表掃描,在中,全表掃描的演算法有新的變化,根據表的大小、快取記憶體的大小等資訊,決定是否繞過SGA直接從磁碟讀Oracle11g取資料。而10g則是全部透過快取記憶體讀取資料,稱為table scan(large)。11g認為大表全表時使用直接路徑讀,可能比10g中的資料檔案雜湊讀(db file scattered reads)速度更快,使用的latch也更少。
大量的direct path read等待時間最可能是一個應用程式問題。
direct path read事件由SQL語句驅動,這些SQL語句執行來自臨時的或常規的表空間的直接讀取操作。
當輸入的內容大於PGA中的工作區域時,帶有需要排序的函式的SQL語句將排序結果寫入到臨時表空間中,
臨時表空間中的排序順序串隨後被合併,用於提供最終的結果。讀取排序結果時,
Oracle會話在direct path read等待事件上等待。
DB_FILE_DIRECT_IO_COUNT初始化引數可能影響direct path read的效能。
一個隱含引數:
_serial_direct_read = false 禁用direct path read
_serial_direct_read = true 啟用direct path read
alter sytem set "_serial_direct_read"=never scope=both sid='*';
可以顯著減少direct path read
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7199859/viewspace-1971780/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- direct path read/read temp等待事件事件
- Oracle 11g direct path read 等待事件的理解Oracle事件
- Oracle常見等待事件之direct path read/writeOracle事件
- 【TUNE_ORACLE】等待事件之IO等待“direct path read”Oracle事件
- ORACLE等待事件:direct path writeOracle事件
- Oracle11gR2後direct path read等待事件的改變Oracle事件
- 11g中direct path read事件等待很高的一個案例事件
- 解決direct path read 與 direct path write問題
- 11g direct path read 等待事件的實驗分析事件
- 11g direct path read 等待事件的初步探討事件
- 【效能調整】等待事件(六) direct path read&write事件
- direct path read/write等待的分析
- 等待事件 direct path read 與11g中的非並行直接讀事件並行
- enq: KO - fast object checkpoint 等待事件與 direct path read - 1ENQASTObject事件
- enq: KO - fast object checkpoint 等待事件與 direct path read - 2ENQASTObject事件
- enq: KO - fast object checkpoint 等待事件與 direct path read - 3ENQASTObject事件
- Oracle direct path read相關隱含引數Oracle
- oracle等待事件2構造一個DB File Sequential Read等待事件和構造一個Direct Path ReadOracle事件
- 【TUNE_ORACLE】等待事件之IO等待“direct path write”Oracle事件
- 一次direct path read 故障處理
- direct path read wait event 的處理辦法AI
- 【TUNE_ORACLE】等待事件之IO等待“direct path write temp”Oracle事件
- Oracle Direct-Path InsertOracle
- Oracle 11g全表掃描以Direct Path Read方式執行Oracle
- 等待事件db file sequential read、db file scattered read和direct read的區別事件
- Oracle 11g 中 Direct path reads 特性 說明Oracle
- zt_direct path read temp等待如何解決_wait eventAI
- Oracle 11g新特性direct path read引發的系統停運故障診斷處理Oracle
- oracle等待事件3構造一個Direct Path write等待事件和構造一個Log File Sync等待事件Oracle事件
- Conventional Path Export和Direct Path ExportExport
- Conventional Path Export Versus Direct Path ExportExport
- direct-path [insert] parallelParallel
- 使用Direct-Path INSERT插入資料到表中
- Append與Direct-Path Insert(一)APP
- Append與Direct-Path Insert(二)APP
- 【DB】Direct Path EXP Corrupts The Dump If An Empty Table Partition Exists
- Direct Path Insert與APPEND, PARALLEL的梳理與小結APPParallel
- db file scattered read與事件db file sequential read相類似(轉)事件