你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> 與IO相關的等待事件troubleshooting

與IO相關的等待事件troubleshooting

編輯:IOS開發綜合
'db file parallel read'           當Oracle從多個數據文件並行讀到內存(PGA或Buffer Cache)的非連續緩沖時,可以看到這種等待事件。在恢復操作或為了優化而預處理緩沖(代替執行多個單塊讀)時也會有這種等待事件。           如果這種等待事件的事件占據大部分,可以按照“db file sequential read”的處理方法。       Direct Path Reads and Writes   直接路徑讀與寫       'direct path read'   Document 50415.1WAITEVENT: "direct path read" Reference Note       'direct path write'   Document 50416.1 WAITEVENT: "direct path write" Reference Note       'direct path read (lob)'   'direct path write (lob)'               當數據庫進程在磁盤與進程PGA內存之間執行一些特殊類型的多塊IO操作時,會出現這種等待事件,這種操作會繞過Buffer Cache。可以同步或異步兩種方式執行這樣的IO操作。          使用這種方式的一些例子:   1. 當內存排序區滿了,使用臨時表空間排序時,對IO的排序操作。   2. 並行執行(查詢和DML)。   3. 預讀操作(buffer預處理)。   4. 直接讀取操作。   5. 對LOB段的IO操作(LOB段不會緩存到Buffer Cache)。           用這種方式中等待的時間都會被記錄(不會衡量用於執行IO操作的時間),但不能用Statspack的“Top 5 Wait/Timed Events”節中列表的相對位置來評估他們的真實影響。           調優的綱領:   1. 建議使用異步IO。   2. 在Oracle 8i,通過設置DB_FILE_DIRECT_IO_COUNT實例參數最小化IO請求數量,DB_BLOCK_SIZE x DB_FILE_DIRECT_IO_COUNT = 系統的max_io_size。           在Oracle 8i中,默認值是64個塊。           (在Oracle 9i,他被_DB_FILE_DIRECT_IO_COUNT參數取代,這個參數控制以字節(不是塊)為單位的直接IO容量)。默認值是1Mb,但是如果系統的max_io_size更小,那默認值也會被縮小。           可參考:Document 47324.1 Init.ora Parameter "DB_FILE_DIRECT_IO_COUNT" Reference Note。   3. 調整內存排序區,以使磁盤排序的磁盤IO最小化。           在9i之前,使用自動SQL執行內存管理。(Document 147806.1 Automated SQL Execution Memory Management)           在8i,手動調整不同的排序區。(Document 109907.1 How to Determine an Optimal SORT_AREA_SIZE)   4. 對於LOB段,可以存儲到操作系統的文件系統中。           Buffer Cache能夠提供一些內存緩沖。   5. 通過查詢V$SESSION_EVENT(等待事件)或V$SESSTAT(統計數據),明確執行直接IO操作的session。    'physical reads direct', 'physical reads direct (lob)',    'physical writes direct' & 'physical writes direct (lob)'   對這些SQL語句調優。   6. 根據V$FILESTAT或Statspack的“File IO Statistics”節,明確哪些數據文件是磁盤存儲的瓶頸,將他們移到其他磁盤。  
  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved