I/O上的等待事件 —— control file sequential read/control file parallel write

不一樣的天空w發表於2018-04-09
https://blog.csdn.net/zq9017197/article/details/6929152

SQL> select event#,name,parameter1,parameter2,parameter3 from v$event_name where name = 'control file sequential read';  

 
    EVENT# NAME                           PARAMETER1      PARAMETER2      PARAMETER3  
---------- ------------------------------ --------------- --------------- ---------------  
        55 control file sequential read   file#           block#          blocks 

當資料庫需要讀取控制檔案上的資訊時,會出現這個等待事件,因為控制檔案的資訊是順序寫的,所以讀取的時候也是順序的,因此稱為控制檔案順序讀,它經常發生在以下情況。

(1)備份控制檔案。

(2)RAC環境下不同例項之間控制檔案的資訊共享。

(3)讀取控制檔案的檔案頭資訊。

(4)讀取控制檔案的其他資訊。

這個等到事件的包含以下三個引數:

file#:要讀取資訊的控制檔案的檔案號。

block#:讀取控制檔案資訊的起始資料塊號。

blocks:需要讀取的控制檔案資料塊數目。


SQL> select event#,name,parameter1,parameter2,parameter3 from v$event_name where name = 'control file parallel write';  
 
    EVENT# NAME                           PARAMETER1      PARAMETER2      PARAMETER3  
---------- ------------------------------ --------------- --------------- ---------------  
        57 control file parallel write    files           block#          requests 

這個等待事件包含三個引數:
files:Oracle要寫入的控制檔案個數。
block#:寫入控制檔案的資料塊數目。
requests:寫入控制檔案請求的I/O次數。

一般環境下,因為更新控制檔案的次數不多,因此不怎麼發生control file parallel write等待現象。但如下情況下可能發生與控制檔案相關的爭用。

日誌檔案切換經常發生時:
日誌檔案過小時,將經常發生日誌檔案的切換。每當發生日誌檔案切換時,需要對控制檔案進行更新,所以LGWR程式等待control file parallel write事件的時間將延長。

檢查點經常發生時:
MTTR設定得過短或頻繁發生人為的檢查點時,CKPT程式等待control file parallel write事件的時間將延長。

nologging引起頻繁的資料檔案修改時:
對資料檔案在nologging選項下執行修改工作時,為了修改unrecoverable SCN需要更新控制檔案。這時,伺服器程式將等待control file parallel write事件。

I/O系統的效能緩慢時:

最好是將控制檔案位於獨立的磁碟空間上,使用裸裝置或direct I/O。

control file parallel write等待,通常與control file sequential read等待或enq: CF - contention等待一同出現的情況較多。enq: CF - contention等待是在多個會話為了同時更新控制檔案獲得CF鎖的過程中發生的。control file parallel write、control file sequential read、CF - contention等待,全是因為過多的控制檔案更新或I/O系統的效能問題引發的

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31397003/viewspace-2152732/,如需轉載,請註明出處,否則將追究法律責任。

相關文章