gc current request等待时间处理

昨天有个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转换方法,以便以后查看。

请使用浏览器的分享功能分享到微信等