Column p3 (id#/block#) in v$session_wait/v$active_session_history

The environment is 10.2.0.3 in AIX 5.3.0.0 in a two node cluster.
In v$session_wait/v$active_session_history, the column p3 is reffered as
For gc buffer busy waits - id#
and
For buffer busy waits - Class#
(1)Could somebody please explain what exactly these values mean id#/class# and how can we associate them with other statitistics availble to troublshoot the issue?
In my system when I made a query in v$active_session_history it is found that file#(p1) with block# (p2) 287724 is having high count of "gc buffer waits" with tow different values in id# (p3) (pls find below result) The file 16 with block 287724 is having most number of counts for gc buffer busy (with two different id#(??))
EVENT P1 P2 P3 COUNT(*)
gc buffer busy 18 1091724 65537 2
gc buffer busy 16 287724 131073 58
gc buffer busy 7 575153 65537 2
gc buffer busy 13 1528666 65537 1
gc buffer busy 14 843396 65537 2
gc buffer busy 12 1157771 65537 1
gc buffer busy 16 287724 65537 86
gc buffer busy 12 12231 65537 1
gc buffer busy 18 1091732 65537 1
gc buffer busy 11 1642482 65537 2
gc buffer busy 10 1527484 65537 2
EVENT P1 P2 P3 COUNT(*)
gc buffer busy 11 1642497 65537 1
gc buffer busy 14 843396 131073 1
And I found that this is a primary key index with the segment_statistics as follows (from V$SEGMENT_STATISTICS)
OBJECT_NAME STATISTIC_NAME VALUE
PROCESS_LOCK_PK logical reads 18176
PROCESS_LOCK_PK buffer busy waits 33
PROCESS_LOCK_PK gc buffer busy 776
PROCESS_LOCK_PK db block changes 6624
PROCESS_LOCK_PK physical reads 2
PROCESS_LOCK_PK physical writes 64
PROCESS_LOCK_PK physical reads direct 0
PROCESS_LOCK_PK physical writes direct 0
PROCESS_LOCK_PK gc cr blocks received 1991
PROCESS_LOCK_PK gc current blocks receive 2771
PROCESS_LOCK_PK ITL waits 0
OBJECT_NAME STATISTIC_NAME VALUE
PROCESS_LOCK_PK row lock waits 0
PROCESS_LOCK_PK space used 0
PROCESS_LOCK_PK space allocated 0
PROCESS_LOCK_PK segment scans 0
with these available informations how can I solve this problem of "gc buffer busy" waits.
I am not able to find from anywhere what exactly this "id#" is and how can we use it to solve this problem.
Any help will be highly appreciated.
Thanks
N. Sethi
Message was edited by:
user623256

Hi,
gc buffer busy
This wait event, also known as global cache buffer busy prior to Oracle 10g, specifies the time the remote instance locally spends accessing the requested data block. This wait event is very similar to the buffer busy waits wait event in a single-instance database and are often the result of:
Hot Blocks - multiple sessions may be requesting a block that is either not in buffer cache or is in an incompatible mode. Deleting some of the hot rows and re-inserting them back into the table may alleviate the problem. Most of the time the rows will be placed into a different block and reduce contention on the block. The DBA may also need to adjust the pctfree and/or pctused parameters for the table to ensure the rows are placed into a different block.
Inefficient Queries ? as with the gc cr request wait event, the more blocks requested from the buffer cache the more likelihood of a session having to wait for other sessions. Tuning queries to access fewer blocks will often result in less contention for the same block.
Please find the below link.. I hope it will help out for you..Since I did not have much idea on RAC ..
http://www.ardentperf.com/2007/09/12/gc-buffer-busy-waits-in-rac-finding-hot-blocks/
Thanks
Pavan Kumar N

Similar Messages

  • Master- Detail form, Total column in master block.

    Hi all,
    i have a invoice_master,block with the flowwing column inv_no,inv_date,inv_total.
    and int he invoice_details, i have item_code,price,qty,total. i have to get SUM(total) into invoice_master.inv_total. inv_total i want to be a display item but database item.
    which is the best way to get sum(total) into invoice_total. i tried with pre-insert on the invoice_details. some times it is not ok, when i do ay updations on details blocl etc.
    Thanks in advance.

    hi,
    What euginy has suggested is one good way.
    The other way is to create a non-database item(lets say 'x') in detail block with number of items displayed property=1,calculation mode=summary,summary function=sum,summarised block=<invoice_details>,summarised item=total and the property of block <invoice_details> Query all records='YES'.
    Then make the property ,copy value from item ,equal to 'x',of invoice_total field of invoice master.
    Cheers
    Rajeev

  • Displaying Average of Columns in ALV Blocked List Display

    Hi,
    I am using ALV Blocked List Display. For the 1st block, I need to display the average of certain columns.
    I am using the following code in the field catalog of the RATE column to display the average , but it is not displayed.
    wa_disptab_field-col_pos = 8.
      wa_disptab_field-fieldname = 'RATE''.
      wa_disptab_field-ref_tabname = 'IT_DISPTAB'.
      wa_disptab_field-seltext_m = 'RS PER KL'.
      wa_disptab_field-do_sum  =  'C'.
      wa_disptab_field-datatype  = 'QUAN'.
      append wa_disptab_field to it_disptab_field.
      clear wa_disptab_field.
    For the same column, the sum is displayed with the same code if I change this part:
    wa_disptab_field-do_sum  =  'C'.   To   wa_disptab_field-do_sum  =  'X'.
    Please Help..

    Hi Debarati,
    go For function/pattern [reuse_alv_grid_display_lvc]
    do the following as mentioned in the previous reply's.
    And  To find the Average of your requirement, pass the field names as per the requirement. 
    gs_sort-fieldname = 'RATE'.
    gs_sort-tabname = 'T_DISPTAB' "Final Internal table
    gs_sort-subtot = 'X'.
    APPEND gs_sort TO gt_sort.
    gs_sort-fieldname = 'RATE1'.
    gs_sort-tabname = 'T_DISPTAB' "Final Internal table
    gs_sort-subtot = 'X'.
    APPEND gs_sort TO gt_sort.
    gs_sort-fieldname = 'RATE2'.
    gs_sort-tabname = 'T_DISPTAB' "Final Internal table
    gs_sort-subtot = 'X'.
    APPEND gs_sort TO gt_sort.
    gs_sort-fieldname = 'RATE3'.
    gs_sort-tabname = 'T_DISPTAB' "Final Internal table
    gs_sort-subtot = 'X'.
    APPEND gs_sort TO gt_sort.
    CALL FUNCTION ' REUSE_ALV_GRID_DISPLAY_lvc'
       EXPORTING
          i_callback_program      = sy-cprog
          i_callback_user_command = 'USER_COMMAND'
          is_layout               = gs_layout
          it_fieldcat              = wa_disptab
          it_events               = gt_events
          it_sort                   = gt_sort
          i_default               = 'X'
          i_save                  = 'U'
        TABLES
          t_outtab                = gt_final
       EXCEPTIONS
         program_error                  = 1
         OTHERS                         = 2
      IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
             WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    i think this will  workout.
    Thanks & Regards,
    Abhisek
    Edited by: Abhisek Pradhan on Sep 29, 2011 7:55 PM

  • Web Application Designer - Columns and Navigation Block

    Hello,
    I have problems concerning a web application.
    The names of the columns are not displayed and the columns are not displayed in the navigation block.
    Maybe you have experience with this problem and can give me some hints.
    I'm looking forward to your answer!
    Best regards.

    Hi,
    see this thread for getting colum names:
    Re: Accessing  table column names from WAD
    thnks.

  • How do I update a column in another block?

    I have a form that has dorm room assignment information in one block--multiple rows, and a related block with check in/out information, one row for each assignment row. If the user updates the assignment information, setting a room assignment to inactive and inserting a new row for the new room assingment, then I need to update the check in/out info associated with the old room to set a 'move out by' date. I'm having difficulty doing this because the focus is usually but not always, on the new room assignment, rather then the old, when the form is committed--which makes it hard to get the correct row updated in the check in/out block. If I do a sql to update the underlying table instead, then the change doesn't necessarily show in the form. So what is the proper way to update data in an associated block when data in the master block changes?

    So what is the proper way to update data in an associated block when data in the master block changes? There are a couple of ways you can do this. Which is the proper way is up to you to decide.
    First, you could use the On-Update or Post-Update triggers to update the corresponding record(s). After the commit, then requery your form to display the updated records.
    Second, you could use the Validation process (eg; When-Validate-Item) of the updated room to update the corresponding record(s). This is harder, because you can't use Restricted Built-ins easily with this method.
    If I do a sql to update the underlying table instead, then the change doesn't necessarily show in the form.Third, you could update the corresponding record(s) through a SQL Statement and then requery the updated records.
    Were it me, I think I would choose the 3rd option.
    Hope this helps,
    Craig B-)
    If someone's response is helpful or correct, please mark it accordingly.

  • Help in calling dynamic columns in anonymous blocks

    my code:
    DECLARE
    col1 VARCHAR2(20):='city';
    BEGIN
    FOR i IN (select * from xbd.cus_ord where rownum < 10)
    LOOP
    -- I would like to call col1 dynamically here in my dbms output.
    DBMS_OUTPUT.PUT_LINE (i.col1);
    END LOOP;
    END;
    On above code I was trying to call a dynmic column. How can I do that.
    I heve been tried in different way by using EXECUTE IMMEDIATE. Still it doesnt work.
    Thx,
    Vi

    DECLARE
       col1        VARCHAR2(30)   := 'object_name';
       TYPE REF_CURSOR IS REF CURSOR;
       refCursor   REF_CURSOR;
       text        VARCHAR2(4000);
    BEGIN
       OPEN refCursor FOR 'SELECT ' || col1 || ' FROM all_objects WHERE ROWNUM < 10';
       LOOP
          FETCH refCursor
           INTO text;
          EXIT WHEN refCursor%NOTFOUND;
          DBMS_OUTPUT.PUT_LINE(text);
       END LOOP;
    END;
    /

  • How to display column headings only once in each page with repeated blocks

    Hi,
    I have a report with 1 block on one column. The block has a table in it and will repeat in one page.
    I need to display the column headers only in the beginning of each page. Can someone share your experience in implementing this ?
    Thanks for your help.

    >
    andyhchsu wrote:
    > Hi,
    > I mean in each block within section, I only need to display the table header once in each page.
    > However if I check table header, it will display repeatedly. Any way to get around this ? Thx.
    The trick I use to do that is turn off all the headers on the block (table and break) and put the header information in its own block above the section and set the new header block to repeat on each page.  You just have to remember to resize the columns in the header block if you make changes to the column sizes in your data block.

  • Split CLOB column to improve performance

    Hi All,
    We have a transactional table which has 3 columns and one among those is CLOB which holds XML data.Inserts are coming at 35K/hr to this table and data will be deleted as soon as job is completed. So anytime the total records in this table will be less than 1000.
    The XML data contains binary info of images and the size of each XML file ranges any where between 200KB to 600KB and the elapsed time for each insert varies from 1 to 2 secs depending upon the concurrency. As we need to achieve 125K/hour soon we were planning to do few modifications on table level.
    1. Increase the CHUNK size from 8KB to 32KB.
    2. Disabling logging for table,clob and index.
    3. Disable flashback for database.
    4. Move the table to a non default blocksize of 32KB. Default is 8KB
    5. Increase the SDU value.
    6. Split the XML data and store it on multiple CLOB columns.
    We don't do any update to this table. Its only INSERT,SELECT and DELETE operations.
    The major wait events I'm seeing during the insert is
    1. direct path read
    2. direct path write
    3. flashback logfile sync
    4. SQL*Net more data from client
    5. Buffer busy wait
    My doubt over here is ,
    1. If I allocate a 2G memory for the non default block size and change the clob to CACHE, will my other objects in buffer_cache gets affected or gets aged out fast?
    2. And moving this table to a SECUREFILE from BASICFILE will help?
    3. Splitting the XML data to insert into different columns in the same table will give a performance boost?
    Oracle EE 11.2.0.1,ASM
    Thanks,
    Arun

    Thanks to all for the replies
    @Sybrand
    Please answer first whether the column is stored in a separate lobsegment.
    No. Table,Index,LOB,LOB index uses the same TS. I missed adding this point( moving to separate TS) as part of table modifications.
    @Hemant
    There's a famous paper / blog post about CLOBs and Database Flashback. If I find it, I'll post the URL.
    Is this the one you are referring to
    http://laimisnd.wordpress.com/2011/03/25/lobs-and-flashback-database-performance/
    By moving the CLOB column to different block size , I will test the performance improvement it gives and will share the results.
    We dont need any data from this table. XML file contains details about finger prints and once the application server completes the job , XML data is deleted from this table.
    So no need of backup/recovery operations for this table. Client will be able to replay the transactions if any problem occurs.
    @Billy
    We are not performing XML parsing on DB side. Gets the XML data from client -> insert into table -> client selects from table -> Upon successful completion of the Job from client ,XML data gets deleted.
    Regarding binding of LOB from client side, will check on that side also to reduce round trips.
    By changing the blocksize, I can keep db_32K_cache_size=2G and keep this table in CACHE. If I directly put my table to CACHE, it will age out all other operation from buffer which makes things worse for us.
    This insert is part of transaction( Registration of a finger print) and this is the only statement taking time as of now compared to other statements in the transaction.
    Thanks,
    Arun

  • How can I handle data in a multi row block?

    Hi all,
    I have a form which contain a multi row block.
    I put data in that block. Suppose that in the second column of
    that block data no changes.I want to fill only the first cell of
    the column and all the cells below first cell ( header) inherits
    that value.
    Example :
    Block1
    ITEM1 ITEM2
    rec1 1 1999
    rec2 2
    rec3 3
    When I insert in the table rec2 I want :
    INSERT INTO(col1,col2) VALUES)(2,1999)!!!.
    Best Regards !
    null

    vali (guest) wrote:
    : Hi all,
    : I have a form which contain a multi row block.
    : I put data in that block. Suppose that in the second column of
    : that block data no changes.I want to fill only the first cell
    of
    : the column and all the cells below first cell ( header)
    inherits
    : that value.
    : Example :
    : Block1
    : ITEM1 ITEM2
    : rec1 1 1999
    : rec2 2
    : rec3 3
    : When I insert in the table rec2 I want :
    : INSERT INTO(col1,col2) VALUES)(2,1999)!!!.
    : Best Regards !
    Mr. Vali,
    I suppose you want to enter ITEM2 value only in first record and
    duplicate that value in subsequent records automatically. There
    are couple of methods to accomplish this and the following is one
    of them:
    Add this code in WHEN-NEW-RECORD-INSTANCE trigger for block1.
    IF :SYSTEM.RECORD_STATUS ='NEW' AND :SYSTEM.CURSOR_RECORD > 1
    THEN
    IF :ITEM2 IS NULL THEN
    GO_ITEM('ITEM2');
    DUPLICATE_ITEM;
    GO_ITEM('ITEM1');
    END IF;
    END IF;
    good luck
    null

  • Get next value in a Multi Record Block

    Hi,
    I've a Multi Record block with 2 items like below.
    pos width
    1 7
    8 5
    13 5
    18 2
    ie pos in next item is sum of pos and width of previous item.I've already implemented this.
    The problem is if the user changes width in a particular record,I want to change next records pos automatically.
    To achieve this,I wrote a when-new-record -instance-trigger as follws:
    if :system.cursor_record=1 then
    :pos:=1;
    elsif :system.record_status='changed' then
    :pos:=:pos+:width;
    end if;
    but even Though I change column width of block,:system.record_status still remain 'INSERT'.
    Pls can u pls tell me how can I acheive this?
    Prashanth Deshmukh

    You cannot use Record Status like that.
    You need to create a procedure that loops through your entire block, keeping track of the pos and width of the prior record to calculate the new pos of each record.
    Your procedure would need to do something like this:
    Declare
        v_Pos  pls_integer := 1;
    Begin
      Go_block('B1');
      First_Record;
      Loop
        Exit when :System.record_status='NEW';
        :B1.pos := v_Pos;
        v_Pos := v_Pos + :B1.width;
        Exit when :System.last_record = 'TRUE';
        Next_Record;
      End Loop;
      First_Record;
    End;

  • F-28 online payment block

    Hi,
    I am getting an Error while processing Customer Payments on T Code : F-28, The Error is as follows :
    1 item(s) was/were not activated due to online payment block : Message no. F5528
    Please help me resolve the issue
    Regards,
    Sagar

    Hi,
    Review your settings on V_T008 for the payment block key associated to this vendor's open line item. Take special care about column "Manual Payments Block" as this flag it is the one that causes this behaviour in the system.
    Aso check whether any substitution is active in your company code in OB28 which put the automatic payment block.
    Also check whether the payment term assigned to the customer has the payment block key assigned in OBB8 transaction.
    Also check whether this customer is captured in a incomplete/ forward dated Payment run, alternatively run an open item list FBL5N for the customer, using a display variant showing "payment block" to confirm what type of payment block exists. You may need to run this showing "all items", as the payment run may have a forward dated "Posting Date" hence why it is currently open as at "todays" "clearing date" but marked as being blocked.
    Regards,
    Gaurav

  • REG :ALV BLOCK DISPLAY

    i have an existing report which displays the output in blocks.
    for this they have used ALV .
    they have used macros to build fieldcatalog for each block.
    the following is the macro for the field catalog.
    DEFINE m_alv_fieldcat.
      clear e_alv_fieldcat.
      add c_1 to w_col_pos.
      move: w_col_pos to e_alv_fieldcat-col_pos,
            &1        to e_alv_fieldcat-fieldname,
            &2        to e_alv_fieldcat-tabname,
            &3        to e_alv_fieldcat-ref_tabname,
            &4        to e_alv_fieldcat-key,
            &5        to e_alv_fieldcat-do_sum,
            &6        to e_alv_fieldcat-outputlen,
            &7        to e_alv_fieldcat-reptext_ddic,
            &8        to e_alv_fieldcat-cfieldname,
            &9        to e_alv_fieldcat-datatype.
      append e_alv_fieldcat to i_alv_fieldcat.
    END-OF-DEFINITION.
    and they have populated the macro as follows
    m_alv_fieldcat:
        c_usnam param_tab_hdr c_bkpf space space 0 space space space,
        c_belnr param_tab_hdr c_bkpf space space 0 space space space,
        c_cpudt param_tab_hdr c_bkpf space space 0 space space space,
        c_budat param_tab_hdr c_bkpf space space 0 space space space,
        c_blart param_tab_hdr c_bkpf space space 0 space space space,
        c_xblnr param_tab_hdr c_bkpf space space 0 space space space.
    now my requirement is  i have to add one more column in the block display.
    they have used place holders for macros.as place holders are only for 9 values.plz tell me how to add one more column to this fieldcatalog which is using Macros.
    thanks &regards

    As you need to add one more column, you will not face any problem with Place holders. Just add the last line of the below code to the existing  code:
    m_alv_fieldcat:
    c_usnam param_tab_hdr c_bkpf space space 0 space space space,
    c_belnr param_tab_hdr c_bkpf space space 0 space space space,
    c_cpudt param_tab_hdr c_bkpf space space 0 space space space,
    c_budat param_tab_hdr c_bkpf space space 0 space space space,
    c_blart param_tab_hdr c_bkpf space space 0 space space space,
    c_xblnr param_tab_hdr c_bkpf space space 0 space space space.
    C_EXTRACOL  param_tab_hdr c_bkpf space space 0 space space space.
    This will add one more column to the existing ALV list.
    Regards,
    Kiran Bobbala

  • Problem in navigating out of a block

    Hi,
    There is a form created with the help of data block wizard. The form contains 4 data blocks. The entry is to be done in a way that the first threee fields are from the first data bolck and the 4th field is from the next data block. The problem I am facing is that when i try to navigate from the first block to the 2nd block the WHEN-VALIDATE-ITEM trigger of the 4th item of the first block is getting fired, thus preventing me to move to the next block and there are no validation trigger on the block level.
    please let me know what the problem can be.
    Help is required urgently

    Hi,
    that's standard behaviour. Item Validation will fire when you change blocks. If validation is successful it shuld not stop you, also you could try using ITEM_IS_VALID which if fiddley way to do it.
    If it is possible for you to create a view that combines the columns the two blocks then it would make your data entry easier.
    one other option is to fiddle with the validation scope
    Easo

  • Problem in navigating out of the block

    Hi,
    There is a form created with the help of data block wizard. The form contains 4 data blocks. The entry is to be done in a way that the first threee fields are from the first data bolck and the 4th field is from the next data block. The problem I am facing is that when i try to navigate from the first block to the 2nd block the WHEN-VALIDATE-ITEM trigger of the 4th item of the first block is getting fired, thus preventing me to move to the next block and there are no validation trigger on the block level.
    please let me know what the problem can be.
    Help is required urgently

    Hi,
    that's standard behaviour. Item Validation will fire when you change blocks. If validation is successful it shuld not stop you, also you could try using ITEM_IS_VALID which if fiddley way to do it.
    If it is possible for you to create a view that combines the columns the two blocks then it would make your data entry easier.
    one other option is to fiddle with the validation scope
    Easo

  • Problem in navigating out of block

    Hi,
    There is a form created with the help of data block wizard. The form contains 4 data blocks. The entry is to be done in a way that the first threee fields are from the first data bolck and the 4th field is from the next data block. The problem I am facing is that when i try to navigate from the first block to the 2nd block the WHEN-VALIDATE-ITEM trigger of the 4th item of the first block is getting fired, thus preventing me to move to the next block and there are no validation trigger on the block level.
    please let me know what the problem can be.
    Help is required urgently

    Hi,
    that's standard behaviour. Item Validation will fire when you change blocks. If validation is successful it shuld not stop you, also you could try using ITEM_IS_VALID which if fiddley way to do it.
    If it is possible for you to create a view that combines the columns the two blocks then it would make your data entry easier.
    one other option is to fiddle with the validation scope
    Easo

Maybe you are looking for