gc current request等待時間處理

n-lauren發表於2013-02-26

昨天有個session 執行查詢 一直出現 gc current request 這個等待事件

 

該等待事件表示資源從遠端例項讀取到本地例項所花費的時間。出現該事件並不能說明什麼問題,如果等待時間過長,可能表示內聯網路存在問題或者有嚴重的塊爭用。

 

SQL> select name,parameter1,parameter2,parameter3 from v$event_name where name='gc current request';

NAME                 PARAMETER1           PARAMETER2           PARAMETER3

-------------------- -------------------- -------------------- --------------------

gc current request   file#                block#               id#

該等待事件 p1 表示 檔案號,p2表示塊號,p3表示v$waitstat中的class

昨天的 p1=20009,p2=2915028  p3=33554433

於是作如下查詢:

SQL> SELECT tablespace_name, file_name FROM dba_data_files WHERE file_id = 20009;

 

TABLESPACE_NAME                FILE_NAME

------------------------------ -------------------------------------------------------------------------------

查詢不到資料檔案,於是更換查詢條件:

SQL> SELECT tablespace_name, file_name FROM dba_temp_files f, v$parameter p WHERE p.name='db_files' AND f.file_id+p.value = 20009;

 

TABLESPACE_NAME                FILE_NAME

------------------------------ --------------------------------------------------------------------------------

TEMP                           +DGDATA01/adw1d/tempfile/temp.596.683026963

p3我們可以這樣轉換:

SQL> select power(2,25)+1 from dual;

 

POWER(2,25)+1

-------------

     33554433

SQL> select rownum,class from v$waitstat;

 

    ROWNUM CLASS

---------- ------------------

         1 data block

         2 sort block

         3 save undo block

         4 segment header

         5 save undo header

         6 free list

         7 extent map

         8 1st level bmb

         9 2nd level bmb

        10 3rd level bmb

        11 bitmap block

        12 bitmap index block

        13 file header block

        14 unused

        15 system undo header

        16 system undo block

        17 undo header

        18 undo block

 

18 rows selected

p3表示等待的是data block,因為power函式後面加的是1

之後我又檢視了等待事件的p1,p2,p3,發現p1變成了20011

SQL> SELECT tablespace_name, file_name FROM dba_temp_files f, v$parameter p WHERE p.name='db_files' AND f.file_id+p.value = 20011;

 

TABLESPACE_NAME                FILE_NAME

------------------------------ --------------------------------------------------------------------------------

TEMP                           +DGDATA01/adw1d/tempfile/temp.655.715787593

 

內聯網路應該不會出現問題,那麼這個問題應該是等待臨時檔案有嚴重的爭用,由於當時下班重忙,沒有仔細檢查,

現在寫這篇部落格,主要記錄gc current request 等待事件的 p1,p2,p3轉換方法,以便以後檢視。

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

相關文章