Global Temporary table and REDO

Dear Friends,
In my production database we are facing problem of excessive redo generation. After initial analysis, we realised that we are using a lot global temporary tables for storing temp data/calculations and they are generating redo.
I know that GTT doesn’t create redo but as it creates UNDO and undo is protected by redo therefore it creates some redo but lesser than normal table.
Solution:
I google and found that if I use direct path insertion (using APPEND hint) into Global temporary table the I can avoid this redo generation as specified in this link (http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:15826034070548)
I tried this solution in my GTT but its not making any difference with APPEND clause. Please check following results. Could you please guide me if I am doing something wrong or any other way to avoid redo on GTT.
JM@ORA10G>insert into JM_temp values(1,'aaaaaaaaaaaaaaaaaaaaaaa');
1 row created.
Elapsed: 00:00:00.00
Execution Plan
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | INSERT STATEMENT | | 1 | 100 | 1 (0)| 00:00:01 |
Statistics
0 recursive calls
2 db block gets
1 consistent gets
0 physical reads
*280 redo size*
918 bytes sent via SQL*Net to client
967 bytes received via SQL*Net from client
6 SQL*Net roundtrips to/from client
1 sorts (memory)
0 sorts (disk)
1     rows processed
JM@ORA10G>rollback ;
Rollback complete.
JM@ORA10G>insert * into JM_temp values(1,'aaaaaaaaaaaaaaaaaaaaaaa');
1 row created.
Elapsed: 00:00:00.00
Execution Plan
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | INSERT STATEMENT | | 1 | 100 | 1 (0)| 00:00:01 |
Statistics
0 recursive calls
2 db block gets
1 consistent gets
0 physical reads
*280 redo size*
917 bytes sent via SQL*Net to client
981 bytes received via SQL*Net from client
6 SQL*Net roundtrips to/from client
1 sorts (memory)
0 sorts (disk)
1     rows processed

Hi,
I tried avoiding GTT in my code but I realised that they are so tightly integrated that i cannot remove them. Operations which I am perfroming on my GTT are
1. Insertion of data
2. Fetch data from main tables with joins on GTT
3. Update GTT with calculated values.
My understanding it Update steps are generating maximum redo.
Please help me how can i reduce my redo generation in such scenarios.
Thanks.

Similar Messages

  • Difference between global temporary table and with clause

    what is the difference between global temporary table and with claue .(with clause is used as table in select query)

    what is the difference between global temporary table and with claue .(with clause is used as table in select query)Its big difference between the two.
    Global temporary table exists for a session or a transaction while, with clause lives only for a query.
    GTT is a named permanent storage table whose data flushes away on session exit or at end of a transaction while WITH clause just provides names to a reference data within a query (which is as good as having union subquery in FROM clause)
    eg
    SQL> with c as
      2  (
      3  select 1 id1, 2 id2 from dual union all
      4  select 2,4 from dual union all
      5  select 3,5 from dual)
      6  select * from c
      7  /
           ID1        ID2
             1          2
             2          4
             3          5
    SQL> ed
    Wrote file afiedt.buf
      1  select *
      2  from
      3  (
      4  select 1 id1, 2 id2 from dual union all
      5  select 2,4 from dual union all
      6* select 3,5 from dual)
      7  /
           ID1        ID2
             1          2
             2          4
             3          5But GTT serves its purpose very well in case of session specific transaction and the scnearion with multiple users working on same data.

  • Global Temporary Table (and more)

    Hi every one,
    here's the scenario:
    My database version is Oracle 9i.
    I have two Global Temporary Tables (GTT). I want to insert into those two tables (using a SELECT statement for each table) and then to use a SELECT statement to select from the two tables and the result sent to Report Builder 6i.
    Now, i guess i could use a Stored Procedure (SP) to insert into those tables and then use a SYS_REFCURSOR to return from this SP. The problem with that is Report Builder 6i does not recognise SYS_REFCURSOR types; it requires actual rows to be returned.
    So, my question is:
    Is there any way to insert into the two GTT first (using Select statements with Insert) and then select from the two tables, all in a single SELECT statement(In any case, a statement must be present that returns actual rows)?
    Additionally, one may run the report more than once (not necessarily after issuing a COMMIT or logging out), which means, the two GTT will be filled again and again. So, i will have to Truncate the GTT every time before Inserting.
    Efficiency of the query/solution is very important too as the data involved can consist of up to 2,00,000 records.
    Any suggestions will be greatly appreciated.
    Thank u.

    Here is some more detail:
    Q1////This statement handles INSERT for one GTT. Data inserted consists of multiple data selected from tables other than POLICY which is used by stored proc MANPOWER (in Q2).
    INSERT INTO TEMP1_NewBusiness
    SELECT ORG1, ORG2, (SELECT NAME FROM ORGANISER WHERE CODE=ORG1), ...,
    FROM POLICY
    WHERE DATCOM = '2007';
    Q2////This handles INSERT for second GTT
    INSERT INTO TEMP2_MANPOWER
    SELECT ORG1, MANPOWER(ORG1)
    FROM TEMP1_NewBusiness;
    /////Table POLICY is a normal table.
    MANPOWER is a stored proc which performs a string aggregation, using a cursor, by selecting from TEMP1.NBS. Because of the volume of data involved and the number of Selects, i'm using the GTT TEMP1.NBS as source for Manpower's data.
    So, first i need these two statements to be executed so that my GTTs are filled.
    Next, i want the result of query below sent to Report Builder.
    Q3.
    SELECT A.ORG1, A.ORG2, ..., B.MANPOWER
    FROM TEMP1.NewBusiness A, TEMP2.MANPOWER B
    WHERE A.ORG1 = B.ORG1;
    Now, i could place Q3 in the Report, but how do i get Q1 and Q2 to be executed first.
    Hope the situation is a little more clear now.
    I understand where you are coming from DAMORGAN and duplication is something i want to avoid myself.
    Thank u.

  • Transaction with Global Temporary Table

    Problem:
    Transaction starts with few DML statements and in the middle we are calling a JAVA method which creates the dynamic global temporary table and proceeding with few DML statements, if one of the statement fails, in the exception clause we are trying to rollback and transactions after the DDL (create global temp table) are rolled back and transactions before the DDL (create global temp table) are committed.
    We cannot pre-create the global temporary table, since we do not know the number of temp table to be pre-created.
    How we can resolve this issue? The same concept works for SQL server.
    Example of our issue:
    --drop table table1 purge;
    --drop table t_id purge;
    Create table table1 (col1 number, col2 varchar2(20));
    Insert into table1 values (1, 'Test1');
    Create global temporary table t_id (id number);
    Insert into table1 values (2, 'Test2');
    Rollback;
    After the rollback you can see only the 'Test1' record.

    > We cannot pre-create the global temporary table, since we do not know the number of temp table to be pre-created.
    I don't see how one procedure could need to create an unknown number of temporary tables. Do they all have different (and unknown) column lists? Couldn't you combine them into a single table with a key to distinguish betweeen the different sets of rows?

  • Are global temporary tables in Oracle 10.2 behaving differently?

    My procedure is creating and inserting data into a Global Temporary Table (on commit data is preserved). I am running this procedure in two different environments.
    The first environment is running under Oracle 10.2 and after the procedure runs successfully I can not see any data inserted in the GTT.
    When I run the very same procedure in the second environment which runs under Oracle 9.2, it works fine, runs successfully and I can see all rows inserted in the GTT.
    Can someone explain this? What should I do differently in the Oracle 10.2? Any thoughts?
    Thank you very much.

    Hi,
    The following TEMPORARY table is created with the attribute, ON COMMIT DELETE ROWS. This allows an application to load registration entries into the global temporary table and manipulate that data with SQL statements. The data is deleted upon each commit with the clause ON COMMIT DELETE ROWS.
    CREATE GLOBAL TEMPORARY TABLE student_reg_entries
    student_name VARCHAR2(30),
    reg_entries reg_entry_varray_type
    ) ON COMMIT DELETE ROWS;
    Replace ON COMMIT DELETE ROWS with ON COMMIT PRESERVE ROWS to retain temporary table data throughout the database session, regardless of any commits made during that session.
    The following illustrates a PL/SQL block that populates this temporary table with two classes each for two students. It makes no difference how many other applications are currently using this temporary global table for similar purposes. For the code below, two rows are inserted, then a COMMIT, after which a SELECT shows that the table is empty.
    DECLARE
    classes_to_take reg_entry_varray_type :=
    reg_entry_varray_type();
    BEGIN
    classes_to_take := reg_entry_varray_type(
    reg_entry('CS101', 'C' ),
    reg_entry('HST310', 'C' ));
    INSERT INTO student_reg_entries VALUES
    ('John', classes_to_take);
    classes_to_take := reg_entry_varray_type(
    reg_entry('ENG102', 'C' ),
    reg_entry('BIO201', 'C' ));
    INSERT INTO student_reg_entries VALUES
    ('Mary', classes_to_take);
    END;
    This next SELECT returns two rows:
    SQL> SELECT * FROM student_reg_entries;
    Row 1:
    John
    REG_ENTRY_VARRAY_TYPE
    (REG_ENTRY('CS101','C'), REG_ENTRY('HST310','C'))
    Row 2:
    Mary
    REG_ENTRY_VARRAY_TYPE
    (REG_ENTRY('ENG102','C'), REG_ENTRY('BIO201','C'))
    A COMMIT automatically deletes rows making the table available for the next session transaction.
    SQL> COMMIT;
    SQL> SELECT * from student_reg_entries;
    no rows selected
    The full information about this article is in the link I post before, I'm just showing this extract of the article because some people don't like to read links....
    Cheers,
    Francisco Munoz Alvarez
    http://www.oraclenz.com

  • Global temporary table

    Hi
    how to create global temporary table and push data from forms.
    Thanks
    Shital

    hi
    try something like this.
    CREATE GLOBAL TEMPORARY TABLE my_temp_table (
      column1  NUMBER,
      column2  NUMBER
    ) ON COMMIT DELETE ROWS;If its Correct/Helpful please Mark it thanks.
    Sarah

  • Insert slow into Global Temporary Table...

    I am working with a stored procedure that does a select into a global temporary table and it is really slow. I have read up on the append hint and know that it is not a solution since GTT's are in the temporary table space which are thus always appended and never have logs.
    Is there something else that I need to know about performance for GTT? I find it hard to believe that Oracle would find it acceptable to take 50 seconds to insert 3300 rows.

    My apologies in advance as my skill level with Oracle is not as high as I would like for this type of analysis and remediation.
    I had thought of it being the select as well but if I run it by itself it takes about 1 second. The interesting part is when I explain plan on it with the Insert, the SQL plan changes.
    Here is the Non-insert explain plan:
    <code class="jive-code jive-java">
    Plan hash value: 3474166068
    | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
    | 0 | SELECT STATEMENT | | 1 | 51 | 8 (38)| 00:00:01 |
    | 1 | HASH GROUP BY | | 1 | 51 | 8 (38)| 00:00:01 |
    | 2 | VIEW | VM_NWVW_1 | 1 | 51 | 7 (29)| 00:00:01 |
    | 3 | HASH UNIQUE | | 1 | 115 | 7 (29)| 00:00:01 |
    | 4 | NESTED LOOPS | | | | | |
    | 5 | NESTED LOOPS | | 1 | 115 | 6 (17)| 00:00:01 |
    | 6 | NESTED LOOPS | | 1 | 82 | 5 (20)| 00:00:01 |
    | 7 | SORT UNIQUE | | 1 | 23 | 2 (0)| 00:00:01 |
    | 8 | TABLE ACCESS BY INDEX ROWID| PEAKSPEAKDAYSEG$METERMASTER | 1 | 23 | 2 (0)| 00:00:01 |
    |* 9 | INDEX RANGE SCAN | IDX_PDSEG$MTR_SEGID | 1 | | 1 (0)| 00:00:01 |
    |* 10 | TABLE ACCESS BY INDEX ROWID | FC_FFMTR_DAILY | 1 | 59 | 2 (0)| 00:00:01 |
    |* 11 | INDEX RANGE SCAN | FC_FFMTRDLY_IDX10 | 2461 | | 2 (0)| 00:00:01 |
    |* 12 | INDEX UNIQUE SCAN | FC_METER_PK | 1 | | 0 (0)| 00:00:01 |
    | 13 | TABLE ACCESS BY INDEX ROWID | FC_METER | 1 | 33 | 1 (0)| 00:00:01 |
    Predicate Information (identified by operation id):
    9 - access("SM"."SEGID"=584)
    10 - filter(TO_DATE(TO_CHAR("V"."MEASUREMENT_DAY"),'YYYYMMDD')>=TO_DATE(' 2002-01-01 00:00:00',
    'syyyy-mm-dd hh24:mi:ss') AND TO_DATE(TO_CHAR("V"."MEASUREMENT_DAY"),'YYYYMMDD')<TO_DATE(' 2003-01-01
    00:00:00', 'syyyy-mm-dd hh24:mi:ss') AND ("V"."ADJUSTED_TOTAL_VOLUME"<>0.0 OR
    ROUND("V"."ADJUSTED_TOTAL_ENERGY",3)<>0.0))
    11 - access("V"."METER_NUMBER"="SM"."METER_ID")
    12 - access("M"."METER_NUMBER"="V"."METER_NUMBER")
    </code>
    Here is the Insert explain plan:
    <code class="jive-code jive-java">
    Plan hash value: 4282493455
    | Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time |
    | 0 | INSERT STATEMENT | | 39 | 2886 | | 7810 (1)| 00:01:34 |
    | 1 | LOAD TABLE CONVENTIONAL | PEAKDAY_TEMP_CONSECUTIVEVALUES | | | | | |
    | 2 | HASH GROUP BY | | 39 | 2886 | | 7810 (1)| 00:01:34 |
    |* 3 | HASH JOIN RIGHT SEMI | | 39 | 2886 | | 7809 (1)| 00:01:34 |
    | 4 | VIEW | VW_NSO_1 | 1 | 10 | | 2 (0)| 00:00:01 |
    | 5 | NESTED LOOPS | | 1 | 27 | | 2 (0)| 00:00:01 |
    |* 6 | INDEX UNIQUE SCAN | PK_PEAKSPEAKDAYSEG | 1 | 4 | | 0 (0)| 00:00:01 |
    | 7 | TABLE ACCESS BY INDEX ROWID | PEAKSPEAKDAYSEG$METERMASTER | 1 | 23 | | 2 (0)| 00:00:01 |
    |* 8 | INDEX RANGE SCAN | IDX_PDSEG$MTR_SEGID | 1 | | | 1 (0)| 00:00:01 |
    | 9 | VIEW | PEAKS_RP_PEAKDAYMETER | 3894 | 243K| | 7807 (1)| 00:01:34 |
    | 10 | SORT UNIQUE | | 3894 | 349K| 448K| 7807 (1)| 00:01:34 |
    | 11 | NESTED LOOPS | | | | | | |
    | 12 | NESTED LOOPS | | 3894 | 349K| | 7722 (1)| 00:01:33 |
    | 13 | TABLE ACCESS FULL | FC_METER | 637 | 21021 | | 18 (0)| 00:00:01 |
    |* 14 | INDEX RANGE SCAN | FC_FFMTRDLY_IDX11 | 6 | | | 10 (0)| 00:00:01 |
    |* 15 | TABLE ACCESS BY INDEX ROWID| FC_FFMTR_DAILY | 6 | 354 | | 12 (0)| 00:00:01 |
    Predicate Information (identified by operation id):
    3 - access("METER_ID"="METER_ID")
    6 - access("GS"."SEGID"=584)
    8 - access("SM"."SEGID"=584)
    14 - access("M"."METER_NUMBER"="V"."METER_NUMBER")
    filter(TO_DATE(TO_CHAR("V"."MEASUREMENT_DAY"),'YYYYMMDD')>=TO_DATE(' 2002-01-01 00:00:00', 'syyyy-mm-dd
    hh24:mi:ss') AND TO_DATE(TO_CHAR("V"."MEASUREMENT_DAY"),'YYYYMMDD')<TO_DATE(' 2003-01-01 00:00:00', 'syyyy-mm-dd
    hh24:mi:ss'))
    15 - filter("V"."ADJUSTED_TOTAL_VOLUME"<>0.0 OR ROUND("V"."ADJUSTED_TOTAL_ENERGY",3)<>0.0)
    </code>
    As you can see there is a real spike in the cost and yet the only thing that was done was the addition of the Insert to GTT. From what I can ascertain the solution may be in an alternate SQL or finding some way to push Oracle into running the query as it would have for the first execution (non-insert).
    I tried creating a simple view out of the SELECT statement to see if that would precompile it but in the end it ran exactly the same way.
    The next thing that I am going to try is removing the PEAKS_RP_PEAKDAYMETER view by going more direct.
    I have not done the trace file analysis yet. Should I still do that?

  • Performance issue with Oracle Global Temporary table

    Hi
    Oracle version : 10.2.0.3.0 - Production
    We have an application in Java / Oracle. Users request comes in XML and oracle parser parses it and inserts it into Global temporary tables and then Business Stored procedure picks data from these GTT's and do the required processing.
    in the end data required response data is again inserted into response GTT's from which Response XML is generated.
    Question : Is the use of Global temporary tables in Oracle degrades performance as we have large number of GTT's in our application approx. 5-600 such tables.
    Regards,
    Vikas Kumar

    Hi All,
    Here is architecture of my application:
    Java application creates XML from the screen values and then inserts that XML
    into a framework(separate DB schema) table . then Java calls a Stored Procedure from same framework DB and in SP we have following steps.
    1. It fatches XML from the XML type table and inserts XML into screen specific XML TYPE table in the framework DB Schema. This table has a trigger which parses XML and then inserts XML values into GTT which are created in separate product schemas.
    2. it calls Product SP and then in product SP we have business logic. Product SP
    does the execution and then inserts response into Response GTT.
    3. Response XML is created by using XML generation function and response GTT.
    I hope u will understand my architeture this time and now let me know if GTT are good in this scenario or not. also please not that i need data in GTT only during execution and not after that. i dont want to do specific delete which i have to do if i am using normal tables.
    Regards,
    Vikas Kumar

  • Auditing data from global temporary table

    Hi I have a process that uses a global temporary table.
    What it does it serve a consolidation point to merge a lot of data.
    Some the former designer decides to use a global temporary table and the row will be gone once it got commit.
    However, the data is corrupted occasionally. And ideally we would like to fix the upstream source data but this is too complicated and not feasible.
    So we decide to audit the data going into the global temporary table. We want to generate a report on the corrupted data.
    However, whenever I commit, the data is gone from the global temporary table and we do not want to set it to commit preserve rows for the global temporary table
    Even with autonomous transaction this is not working out as once it commits the data is gone.
    Any idea how this can be done. Here are the prototype that I build to demo this:
    drop table gt_tst1;
    --this is the table its data needs to get audit
    create global temporary table gt_tst1(id number); --on commit preserve rows;
    drop table not_gt_tst1;
    --this table is used for storign the corrupt data and generate report
    create table not_gt_tst1 as select * from gt_tst1;
    CREATE OR REPLACE PROCEDURE tst_gt_tst1 IS
    PRAGMA AUTONOMOUS_TRANSACTION;
    BEGIN
    --if there is a way to do the insert and select once. but it seems it is not working for global temporay table unless change it to on commit preserve rows
      INSERT
      when m2 = 0 THEN
      INTO not_gt_tst1(id)values(object_id)
      when m3 = 0 THEN
      INTO gt_tst1(id) values (object_id)
      select object_id,mod(object_id,2) m2, mod(object_id,3) m3 from dba_objects where rownum < 101;
      COMMIT;
    END tst_gt_tst1;
    select sysdate from dual;
    truncate table gt_tst1;
    truncate table not_gt_tst1;
    select * from gt_tst1;
    select * from not_gt_tst1;
    execute tst_gt_tst1;
    select * from gt_tst1; -- data gone
    select * from not_gt_tst1;
    --commit
    select sysdate from dual;
    spool off

    The data is poor and the code is poor and the dev and QA env is also poor..
    And the business asks us to fix the data..However..we do not have an environment close enough to test it out before it got put into production that is the bottom line.
    Heres the dev and QA env cannot be trust to the extent that I can sign off and say it will give the same behavior as the production env
    So we would like to minimize the risk as there are other process uses these table and we are not sure if changing this would lead to UN-expected behavior.
    We cannot tell some other process rely on the fact that these table got empty out after commit.
    Edited by: vxwo0owxv on Jan 23, 2012 12:18 PM
    Edited by: vxwo0owxv on Jan 23, 2012 12:20 PM

  • Global temporary table error

    Hi i had taken out script of global temporary table from pl/sql developer its is coming like below.
    create global temporary table abc of XYZ
    on commit preserve rows;
    when i tried to create that global temp table again some other schema i am getting error.
    where XYZ is a TYPE.
    create global temporary table abc of XYZ on commit preserve rows
    ERROR at line 1:
    ORA-00902: invalid datatype
    Please help me in this.

    The following works when global temporary table and type are in the same schema:
    SQL> select * from v$version;
    BANNER
    Oracle Database 10g Express Edition Release 10.2.0.1.0 - Product
    PL/SQL Release 10.2.0.1.0 - Production
    CORE    10.2.0.1.0      Production
    TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
    NLSRTL Version 10.2.0.1.0 - Production
    SQL>
    SQL> drop table tt purge;
    Table dropped.
    SQL> drop table tp purge;
    Table dropped.
    SQL>
    SQL> drop type xyz force;
    Type dropped.
    SQL>
    SQL> create type xyz as object (x int)
      2  /
    Type created.
    SQL> show errors
    No errors.
    SQL> create table tp of xyz
      2  /
    Table created.
    SQL> show errors
    No errors.
    SQL> create global temporary table tt of xyz;
    Table created.Edited by: P. Forstmann on 4 déc. 2009 19:36
    Edited by: P. Forstmann on 4 déc. 2009 19:47

  • Can I use Parallel execution for Global Temporary table within SP and How

    Dear Gurus,
    I have Global temporary table as below
    Create global temporary table Temp_Emp
    empno number,
    ename varchar2(20),
    deptno number
    ) on commit preserve rows;
    During processing I insert the data into this table and then fire query on Temp_Emp, get the data and pass it to front end.
    The SP as shown below
    Create or replace procedure get_emp_data
    empid in number,
    emp_detail out RefCsr -- Ref cursor
    as
    begin
    -- some code here
    open emp_detail for
    select *
    from Temp_Emp
    where empno = empid;
    end get_emp_data;
    Can use Parallel Query execution on Temp_Emp table and how ?
    i.e. do need to explicitly use parallel construct in query or is it default.
    Because I have many SQL like above (on global temporary tables) within Stored Procedures.
    Can anybody give me any suggestion.
    Thanking in Advance
    Sanjeev

    How come you are populating a temporary table and then opening a cursor on this temporary table for the front end to use?
    Couldn't you presumably just form a query out of the code you use to populate the temporary table? This is the recommended approach in Oracle.

  • Deadlock with CREATE GLOBAL TEMPORARY TABLE

    I got this error
    ORA-00604: error occurred at recursive SQL level 1
    ORA-00060: deadlock detected while waiting for resource
    while trying to create global temporary table.
    Table creation command:
    CREATE GLOBAL TEMPORARY TABLE ITUSER.T_0091FBDG ("GOD" char(4) DEFAULT (' ') NOT NULL,"UNKUM" number(10,0) DEFAULT (0) NOT NULL,[a lot of other fields]) ON COMMIT PRESERVE ROWS
    There is no outer references in command. So does somebody know where does deadlock come from?
    I'm using Oracle 10g.
    Edited by: LeopoldStoch on Apr 13, 2010 7:04 AM

    I have grabbed log files. But it make me even more curious. Here it is:
    alert_itdb.log
    Thread 1 advanced to log sequence 253 (LGWR switch)
    Current log# 1 seq# 253 mem# 0: C:\ORACLE\PRODUCT\10.2.0\ORADATA\ITDB\REDO01.LOG
    Tue Apr 13 10:53:09 2010
    Thread 1 advanced to log sequence 254 (LGWR switch)
    Current log# 2 seq# 254 mem# 0: C:\ORACLE\PRODUCT\10.2.0\ORADATA\ITDB\REDO02.LOG
    Tue Apr 13 10:55:32 2010
    Thread 1 advanced to log sequence 255 (LGWR switch)
    Current log# 3 seq# 255 mem# 0: C:\ORACLE\PRODUCT\10.2.0\ORADATA\ITDB\REDO03.LOG
    Tue Apr 13 10:55:49 2010
    ORA-00060: Deadlock detected. More info in file c:\oracle\product\10.2.0\admin\itdb\udump\itdb_ora_3868.trc.
    Tue Apr 13 11:01:58 2010
    Thread 1 advanced to log sequence 256 (LGWR switch)
    Current log# 1 seq# 256 mem# 0: C:\ORACLE\PRODUCT\10.2.0\ORADATA\ITDB\REDO01.LOG
    Tue Apr 13 11:03:29 2010
    Thread 1 advanced to log sequence 257 (LGWR switch)
    Current log# 2 seq# 257 mem# 0: C:\ORACLE\PRODUCT\10.2.0\ORADATA\ITDB\REDO02.LOG
    Tue Apr 13 11:14:16 2010
    itdb_ora_3868.trc
    Dump file c:\oracle\product\10.2.0\admin\itdb\udump\itdb_ora_3868.trc
    Tue Apr 13 10:55:48 2010
    ORACLE V10.2.0.4.0 - Production vsnsta=0
    vsnsql=14 vsnxtr=3
    Oracle Database 10g Release 10.2.0.4.0 - Production
    Windows NT Version V5.2 Service Pack 2
    CPU : 2 - type 586, 1 Physical Cores
    Process Affinity : 0x00000000
    Memory (Avail/Total): Ph:3568M/8188M, Ph+PgF:7889M/12090M, VA:579M/2799M
    Instance name: itdb
    Redo thread mounted by this instance: 1
    Oracle process number: 18
    Windows thread id: 3868, image: ORACLE.EXE (SHAD)
    *** 2010-04-13 10:55:48.874
    *** ACTION NAME:() 2010-04-13 10:55:48.811
    *** MODULE NAME:(5436,20100413105316,82100) 2010-04-13 10:55:48.811
    *** SERVICE NAME:(ITDB) 2010-04-13 10:55:48.811
    *** SESSION ID:(145.52602) 2010-04-13 10:55:48.811
    DEADLOCK DETECTED ( ORA-00060 )
    [Transaction Deadlock]
    The following deadlock is not an ORACLE error. It is a
    deadlock due to user error in the design of an application
    or from issuing incorrect ad-hoc SQL. The following
    information may aid in determining the deadlock:
    Deadlock graph:
    ---------Blocker(s)-------- ---------Waiter(s)---------
    Resource Name process session holds waits process session holds waits
    TX-00080011-0000198d 18 145 X 17 158 S
    TX-0006001c-0000192d 17 158 X 18 145 S
    session 145: DID 0001-0012-00000164 session 158: DID 0001-0011-000005F5
    session 158: DID 0001-0011-000005F5 session 145: DID 0001-0012-00000164
    Rows waited on:
    Session 158: obj - rowid = 00000000 - D/////AACAAAKy6AAA
    (dictionary objn - 0, file - 2, block - 44218, slot - 0)
    Session 145: obj - rowid = 00000000 - D/////AACAAAABJAAA
    (dictionary objn - 0, file - 2, block - 73, slot - 0)
    Information on the OTHER waiting sessions:
    Session 158:
    pid=17 serial=2727 audsid=241067 user: 60/ITUSER
    O/S info: user: VSC03\it_appsrv, term: VSC03, ospid: 2328:2640, machine: WORKGROUP\VSC03
    program: AppServer.exe
    client info: ELIZ-041.R#046IKSANOV.RIKSANOV.VSC03:8223.2328.5-1-2600.IT_APPSR
    application name: 5436,20100413105322,82000, hash value=3107059750
    Current SQL Statement:
    CREATE GLOBAL TEMPORARY TABLE ITUSER.T_009EFBDN ("GOD" char(4) DEFAULT (' ') NOT NULL,"UNKUM" number(10,0) DEFAULT (0) NOT NULL,"CENA" number(15,5) DEFAULT (0) NOT NULL,"EDI" number(3,0) NULL,"EDI2" number(3,0) NULL,"KOL" number(14,5) DEFAULT (0) NOT NULL,"KOL2" number(14,5) DEFAULT (0) NOT NULL,"SUMMA" number(16,2) DEFAULT (0) NOT NULL,"KOL_N1" number(14,5) DEFAULT (0) NOT NULL,"KOL_N2" number(14,5) DEFAULT (0) NOT NULL,"KOL_N3" number(14,5) DEFAULT (0) NOT NULL,"KOL_N4" number(14,5) DEFAULT (0) NOT NULL,"KOL_N5" number(14,5) DEFAULT (0) NOT NULL,"KOL_N6" number(14,5) DEFAULT (0) NOT NULL,"KOL_N7" number(14,5) DEFAULT (0) NOT NULL,"KOL_N8" number(14,5) DEFAULT (0) NOT NULL,"KOL_N9" number(14,5) DEFAULT (0) NOT NULL,"KOL_N10" number(14,5) DEFAULT (0) NOT NULL,"KOL_N11" number(14,5) DEFAULT (0) NOT NULL,"KOL_N12" number(14,5) DEFAULT (0) NOT NULL,"KOL_N13" number(14,5) DEFAULT (0) NOT NULL,"KOL2N1" number(14,5) DEFAULT (0) NOT NULL,"KOL2N2" number(14,5) DEFAULT (0) NOT NULL,"KOL2N3" number(14,5) DEFAULT (0) NOT NULL,"KOL2N4" number(14,5) DEFAULT (0) NOT NULL,"KOL2N5" number(14,5) DEFAULT (0) NOT NULL,"KOL2N6" number(14,5) DEFAULT (0) NOT NULL,"KOL2N7" number(14,5) DEFAULT (0) NOT NULL,"KOL2N8" number(14,5) DEFAULT (0) NOT NULL,"KOL2N9" number(14,5) DEFAULT (0) NOT NULL,"KOL2N10" number(14,5) DEFAULT (0) NOT NULL,"KOL2N11" number(14,5) DEFAULT (0) NOT NULL,"KOL2N12" number(14,5) DEFAULT (0) NOT NULL,"KOL2N13" number(14,5) DEFAULT (0) NOT NULL,"SUM_N1" number(16,2) DEFAULT (0) NOT NULL,"SUM_N2" number(16,2) DEFAULT (0) NOT NULL,"SUM_N3" number(16,2) DEFAULT (0) NOT NULL,"SUM_N4" number(16,2) DEFAULT (0) NOT NULL,"SUM_N5" number(16,2) DEFAULT (0) NOT NULL,"SUM_N6" number(16,2) DEFAULT (0) NOT NULL,"SUM_N7" number(16,2) DEFAULT (0) NOT NULL,"SUM_N8" number(16,2) DEFAULT (0) NOT NULL,"SUM_N9" number(16,2) DEFAULT (0) NOT NULL,"SUM_N10" number(16,2) DEFAULT (0) NOT NULL,"SUM_N11" number(16,2) DEFAULT (0) NOT NULL,"SUM_N12" number(16,2) DEFAULT (0) NOT NULL,"SUM_N13" number(16,2) DEFAULT (0) NOT NULL,"DATE_REST" date NULL,"KOL_PRI" number(14,5) DEFAULT (0) NOT NULL,"KOL2PRI" number(14,5) DEFAULT (0) NOT NULL,"SUM_PRI" number(16,2) DEFAULT (0) NOT NULL,"DATE_FPRI" date NULL,"NDOC_FPRI" char(20) DEFAULT (' ') NOT NULL,"KOL_PRIG" number(14,5) DEFAULT (0) NOT NULL,"KOL2PRIG" number(14,5) DEFAULT (0) NOT NULL,"SUM_PRIG" number(16,2) DEFAULT (0) NOT NULL,"KOL_PRIT" number(14,5) DEFAULT (0) NOT NULL,"KOL2PRIT" number(14,5) DEFAULT (0) NOT NULL,"KOL_RAS" number(14,5) DEFAULT (0) NOT NULL,"KOL2RAS" number(14,5) DEFAULT (0) NOT NULL,"SUM_RAS" number(16,2) DEFAULT (0) NOT NULL,"DATE_LRAS" date NULL,"NDOC_LRAS" char(20) DEFAULT (' ') NOT NULL,"KOL_RASG" number(14,5) DEFAULT (0) NOT NULL,"KOL2RASG" number(14,5) DEFAULT (0) NOT NULL,"SUM_RASG" number(16,2) DEFAULT (0) NOT NULL,"KOL_RAST" number(14,5) DEFAULT (0) NOT NULL,"KOL2RAST" number(14,5) DEFAULT (0) NOT NULL,"KOL_PRIREZ" number(14,5) DEFAULT (0) NOT NULL,"KOL2PRIREZ" number(14,5) DEFAULT (0) NOT NULL,"SUM_PRIREZ" number(16,2) DEFAULT (0) NOT NULL,"KOL_RASREZ" number(14,5) DEFAULT (0) NOT NULL,"KOL2RASREZ" number(14,5) DEFAULT (0) NOT NULL,"SUM_RASREZ" number(16,2) DEFAULT (0) NOT NULL,"PRC_RAS" number(3,0) DEFAULT (0) NOT NULL,"KSSM" char(5) NULL,"COMM" char(40) DEFAULT (' ') NOT NULL,"KDM3" char(1) DEFAULT (' ') NOT NULL,"KDM4" char(1) DEFAULT (' ') NOT NULL,"KOL_INV" number(14,5) DEFAULT (0) NOT NULL,"KOL2INV" number(14,5) DEFAULT (0) NOT NULL,"CENA_INV" number(15,5) DEFAULT (0) NOT NULL,"SUM_INV" number(16,2) DEFAULT (0) NOT NULL,"DATE_INV" date NULL,"KSBG" char(3) DEFAULT (' ') NOT NULL,"KOL_C" number(14,5) DEFAULT (0) NOT NULL,"KOL2C" number(14,5) DEFAULT (0) NOT NULL,"SUM_C" number(16,2) DEFAULT (0) NOT NULL,"KBLS" char(5) DEFAULT (' ') NOT NULL,"BS_ZATR" char(10) NULL,"KAU_ZATR" char(12) DEFAULT (' ') NOT NULL,"MECEXPL" number(3,0) DEFAULT (0) NOT NULL,"SUM_IZNOS" number(14,2) DEFAULT (0) NOT NULL,"SUM_IMEC" number(14,2) DEFAULT (0) NOT NULL,"NINKAS" number(10,0) DEFAULT (0) NOT NULL,"DATE_D" date NULL,"FIO_D" char(10) DEFAULT (' ') NOT NULL,"DATE_K" date NULL,"FIO_O" char(10) DEFAULT (' ') NOT NULL,"STDCURR" char(1) DEFAULT (' ') NOT NULL) ON COMMIT PRESERVE ROWS
    End of information on OTHER waiting sessions.
    Current SQL statement for this session:
    insert into col$(obj#,name,intcol#,segcol#,type#,length,precision#,scale,null$,offset,fixedstorage,segcollength,deflength,default$,col#,property,charsetid,charsetform,spare1,spare2,spare3)values(:1,:2,:3,:4,:5,:6,decode(:5,182/*DTYIYM*/,:7,183/*DTYIDS*/,:7,decode(:7,0,null,:7)),decode(:5,2,decode(:8,-127/*MAXSB1MINAL*/,null,:8),178,:8,179,:8,180,:8,181,:8,182,:8,183,:8,231,:8,null),:9,0,:10,:11,decode(:12,0,null,:12),:13,:14,:15,:16,:17,:18,:19,:20)
    ===================================================
    PROCESS STATE
    Process global information:
    process: 5F28A1F8, call: 5F3A8E98, xact: 5DFF8B40, curses: 5F37D6A8, usrses: 5F375F38
    SO: 5F28A1F8, type: 2, owner: 00000000, flag: INIT/-/-/0x00
    (process) Oracle pid=18, calls cur/top: 5F3A8E98/5F3A75B8, flag: (0) -
    int error: 0, call error: 0, sess error: 0, txn error 0
    (post info) last post received: 0 0 117
    last post received-location: kcbzww
    last process to post me: 5f289c00 93 0
    last post sent: 0 0 117
    last post sent-location: kcbzww
    last process posted by me: 5f289c00 93 0
    (latch info) wait_event=0 bits=0
    Process Group: DEFAULT, pseudo proc: 5F2BC4EC
    O/S info: user: SYSTEM, term: VSC03, ospid: 3868
    OSD pid info: Windows thread id: 3868, image: ORACLE.EXE (SHAD)
    Dump of memory from 0x5F276E78 to 0x5F276FFC
    5F276E70 0000000B 5E1231B8 [.....1.^]
    5F276E80 00000010 000313A9 5F3A75B8 00000003 [.........u:_....]
    5F276E90 000313A9 5F4B92D4 0000000B 000313A9 [......K_........]
    5F276EA0 5F375F38 00000004 0003129D 5DE1FFA4 [8_7_...........]]
    5F276EB0 00000007 000313A9 5DE20028 00000007 [........(..]....]
    5F276EC0 000313A9 5DE200BC 00000007 000313A9 [.......]........]
    5F276ED0 5DE20140 00000007 000313A9 5DE201C4 [@..]...........]]
    5F276EE0 00000007 000313A9 5DE20248 00000007 [........H..]....]
    5F276EF0 000313A9 5DE202CC 00000007 000313A9 [.......]........]
    5F276F00 00000000 00000000 00000000 00000000 [................]
    Repeat 14 times
    5F276FF0 00000000 00000000 00000000 [............]
    (FOB) flags=2 fib=5DEEEC98 incno=0 pending i/o cnt=0
    fname=C:\ORACLE\PRODUCT\10.2.0\ORADATA\ITDB\UNDOTBS01.DBF
    fno=2 lblksz=8192 fsiz=311040
    (FOB) flags=2 fib=5DEEE608 incno=0 pending i/o cnt=0
    fname=C:\ORACLE\PRODUCT\10.2.0\ORADATA\ITDB\CONTROL03.CTL
    fno=2 lblksz=16384 fsiz=430
    (FOB) flags=2 fib=5DEEE2C8 incno=0 pending i/o cnt=0
    fname=C:\ORACLE\PRODUCT\10.2.0\ORADATA\ITDB\CONTROL02.CTL
    fno=1 lblksz=16384 fsiz=430
    (FOB) flags=2 fib=5DEEDF88 incno=0 pending i/o cnt=0
    fname=C:\ORACLE\PRODUCT\10.2.0\ORADATA\ITDB\CONTROL01.CTL
    fno=0 lblksz=16384 fsiz=430
    (FOB) flags=2 fib=5DEEF658 incno=0 pending i/o cnt=0
    fname=C:\ORACLE\PRODUCT\10.2.0\ORADATA\ITDB\ITDATA01.DBF
    fno=5 lblksz=8192 fsiz=2109440
    (FOB) flags=2 fib=5DEEE948 incno=0 pending i/o cnt=0
    fname=C:\ORACLE\PRODUCT\10.2.0\ORADATA\ITDB\SYSTEM01.DBF
    fno=1 lblksz=8192 fsiz=79360
    (FOB) flags=2 fib=5DEEFCE8 incno=0 pending i/o cnt=0
    fname=C:\ORACLE\PRODUCT\10.2.0\ORADATA\ITDB\TEMP01.DBF
    fno=201 lblksz=8192 fsiz=43776
    SO: 5F375F38, type: 4, owner: 5F28A1F8, flag: INIT/-/-/0x00
    (session) sid: 145 trans: 5D06D4B0, creator: 5F28A1F8, flag: (8100041) USR/- BSY/-/-/-/-/-
    DID: 0001-0012-00000164, short-term DID: 0000-0000-00000000
    txn branch: 00000000
    oct: 1, prv: 0, sql: 50B2BAC0, psql: 57554078, user: 60/ITUSER
    service name: ITDB
    O/S info: user: VSC03\it_appsrv, term: VSC03, ospid: 3668:3616, machine: WORKGROUP\VSC03
    program: AppServer.exe
    client info: ELIZ-041.R#046IKSANOV.RIKSANOV.VSC03:8223.3668.5-1-2600.IT_APPSR
    application name: 5436,20100413105316,82100, hash value=3093400541
    last wait for 'enq: TX - allocate ITL entry' blocking sess=0x5F386200 seq=4256 wait_time=2999487 seconds since wait started=2
    name|mode=54580004, usn<<16 | slot=6001c, sequence=192d
    Dumping Session Wait History
    for 'enq: TX - allocate ITL entry' count=1 wait_time=2999487
    name|mode=54580004, usn<<16 | slot=6001c, sequence=192d
    for 'buffer busy waits' count=1 wait_time=10
    file#=1, block#=f923, class#=1
    for 'buffer busy waits' count=1 wait_time=53
    file#=1, block#=d1ff, class#=1
    for 'buffer busy waits' count=1 wait_time=36
    file#=1, block#=19, class#=4
    for 'buffer busy waits' count=1 wait_time=28
    file#=1, block#=19, class#=4
    for 'buffer busy waits' count=1 wait_time=27
    file#=1, block#=f923, class#=1
    for 'buffer busy waits' count=1 wait_time=13
    file#=1, block#=ec86, class#=1
    for 'buffer busy waits' count=1 wait_time=29
    file#=1, block#=f923, class#=1
    for 'buffer busy waits' count=1 wait_time=15
    file#=1, block#=f95d, class#=1
    for 'buffer busy waits' count=1 wait_time=215
    file#=1, block#=d1ff, class#=1
    temporary object counter: 1
    UOL used : 0 locks(used=2, free=10)
    KGX Atomic Operation Log 69405330
    Mutex 00000000(0, 0) idn 0 oper NONE
    Cursor Parent uid 145 efd 5 whr 11 slp 0
    oper=NONE pt1=A4744BC4 pt2=6842B2F4 pt3=A4744B94
    pt4=00000000 u41=0 stt=0
    KGX Atomic Operation Log 69405358
    Mutex 50B2BB74(0, 1) idn 0 oper NONE
    Cursor Stat uid 145 efd 8 whr 1 slp 0
    oper=NONE pt1=50B2BAC0 pt2=00000000 pt3=00000000
    pt4=00000000 u41=0 stt=8
    KGX Atomic Operation Log 69405380
    Mutex 00000000(0, 0) idn 0 oper NONE
    Library Cache uid 145 efd 0 whr 0 slp 0
    SO: 5C5A6334, type: 53, owner: 5F375F38, flag: INIT/-/-/0x00
    LIBRARY OBJECT LOCK: lock=5c5a6334 handle=5e9a6868 mode=N
    call pin=00000000 session pin=00000000 hpc=0000 hlc=0000
    htl=5C5A6384[5C76A228,5C59D1D0] htb=5C59D1D0 ssga=5C59CD04
    user=5f375f38 session=5f37d6a8 count=1 flags=CBK[0020] savepoint=0x0
    LIBRARY OBJECT HANDLE: handle=5e9a6868 mtx=5E9A691C(0) cdp=0
    namespace=CRSR flags=RON/KGHP/PN0/EXP/[10010100]
    kkkk-dddd-llll=0000-0001-0001 lock=N pin=S latch#=1 hpc=c742 hlc=c742
    lwt=5E9A68C4[5E9A68C4,5E9A68C4] ltm=5E9A68CC[5E9A68CC,5E9A68CC]
    pwt=5E9A68A8[5E9A68A8,5E9A68A8] ptm=5E9A68B0[5E9A68B0,5E9A68B0]
    ref=5E9A68E4[662DCE3C,662DCE3C] lnd=5E9A68F0[5E9A68F0,5E9A68F0]
    LIBRARY OBJECT: object=51e6451c
    type=CRSR flags=EXS[0001] pflags=[0000] status=VALD load=0
    DEPENDENCIES: count=1 size=16
    AUTHORIZATIONS: count=1 size=16 minimum entrysize=18
    ACCESSES: count=1 size=16
    TRANSLATIONS: count=1 size=16
    DATA BLOCKS:
    data# heap pointer status pins change whr
    0 a1f966d4 51e645b4 I/P/A/-/- 0 NONE 00
    6 662dcce4 a24e2534 I/P/A/-/E 0 NONE 00
    KGX Atomic Operation Log 50C2014C
    Mutex 662DCC54(0, 2) idn d64ee82 oper SHRD
    Cursor Pin uid 145 efd 0 whr 3 slp 0
    opr=4 pso=5C5A6334 flg=0
    pcs=662DCC54 nxt=5B9C77F4 flg=18 cld=0 hd=5E9A6868 par=54763C50
    ct=2 hsh=0 unp=00000000 unn=0 hvl=662dcff0 nhv=0 ses=00000000
    hep=662DCCA0 flg=80 ld=1 ob=51E6451C ptr=A24E2534 fex=A24E16F8
    SO: 5C76A1D8, type: 53, owner: 5F375F38, flag: INIT/-/-/0x00
    LIBRARY OBJECT LOCK: lock=5c76a1d8 handle=5a67b168 mode=N
    call pin=00000000 session pin=00000000 hpc=0000 hlc=0000
    htl=5C76A228[5C59D1D0,5C5A6384] htb=5C59D1D0 ssga=5C59CD04
    user=5f375f38 session=5f37d6a8 count=1 flags=[0000] savepoint=0x4bc41571
    LIBRARY OBJECT HANDLE: handle=5a67b168 mtx=5A67B21C(2) cdp=2
    name=
    insert into col$(obj#,name,intcol#,segcol#,type#,length,precision#,scale,null$,offset,fixedstorage,segcollength,deflength,default$,col#,property,charsetid,charsetform,spare1,spare2,spare3)values(:1,:2,:3,:4,:5,:6,decode(:5,182/*DTYIYM*/,:7,183/*DTYIDS*/,:7,decode(:7,0,null,:7)),decode(:5,2,decode(:8,-127/*MAXSB1MINAL*/,null,:8),178,:8,179,:8,180,:8,181,:8,182,:8,183,:8,231,:8,null),:9,0,:10,:11,decode(:12,0,null,:12),:13,:14,:15,:16,:17,:18,:19,:20)
    hash=012a6293ef607cee606b82dc0d64ee82 timestamp=04-08-2010 17:06:19
    namespace=CRSR flags=RON/KGHP/TIM/PN0/LRG/KST/DBN/MTX/[100100d1]
    kkkk-dddd-llll=0000-0001-0001 lock=N pin=0 latch#=1 hpc=c298 hlc=c298
    lwt=5A67B1C4[5A67B1C4,5A67B1C4] ltm=5A67B1CC[5A67B1CC,5A67B1CC]
    pwt=5A67B1A8[5A67B1A8,5A67B1A8] ptm=5A67B1B0[5A67B1B0,5A67B1B0]
    ref=5A67B1E4[5A67B1E4,5A67B1E4] lnd=5A67B1F0[5A67B1F0,5A67B1F0]
    LIBRARY OBJECT: object=54763bb8
    type=CRSR flags=EXS[0001] pflags=[0000] status=VALD load=0
    CHILDREN: size=16
    child# table reference handle
    0 662dd020 662dce3c 5e9a6868
    1 662dd020 5b9c7940 5eb1fdbc
    DATA BLOCKS:
    data# heap pointer status pins change whr
    0 54c98590 54763c50 I/P/A/-/- 0 NONE 00
    SO: 5C5AFBCC, type: 53, owner: 5F375F38, flag: INIT/-/-/0x00
    LIBRARY OBJECT LOCK: lock=5c5afbcc handle=6ad6312c mode=N
    call pin=00000000 session pin=00000000 hpc=0000 hlc=0000
    htl=5C5AFC1C[5C61B52C,5C59D0B0] htb=5C59D0B0 ssga=5C59CD04
    user=5f375f38 session=5f37d6a8 count=1 flags=[0000] savepoint=0x0
    LIBRARY OBJECT HANDLE: handle=6ad6312c mtx=6AD631E0(0) cdp=0
    namespace=CRSR flags=RON/KGHP/PN0/EXP/[10010100]
    kkkk-dddd-llll=0000-0001-0001 lock=N pin=0 latch#=2 hpc=b9a0 hlc=b9a0
    lwt=6AD63188[6AD63188,6AD63188] ltm=6AD63190[6AD63190,6AD63190]
    pwt=6AD6316C[6AD6316C,6AD6316C] ptm=6AD63174[6AD63174,6AD63174
    SO: 5C5A5C34, type: 53, owner: 5F375F38, flag: INIT/-/-/0x00
    LIBRARY OBJECT LOCK: lock=5c5a5c34 handle=69731e20 mode=N
    call pin=00000000 session pin=00000000 hpc=0000 hlc=0000
    htl=5C5A5C84[5C59D4D0,5C6074B0] htb=5C59D4D0 ssga=5C59CD04
    user=5f375f38 session=5f37d6a8 count=1 flags=[0000] savepoint=0x4bc41571
    LIBRARY OBJECT HANDLE: handle=69731e20 mtx=69731ED4(2) cdp=2
    name=update con$ set con#=:3 where owner#=:1 and name=:2
    hash=cb0043a665029adc35682cfd8f583ce2 timestamp=04-08-2010 17:10:17
    namespace=CRSR flags=RON/KGHP/TIM/PN0/SML/KST/DBN/MTX/[120100d0]
    kkkk-dddd-llll=0000-0001-0001 lock=N pin=0 latch#=2 hpc=ac50 hlc=ac50
    lwt=69731E7C[69731E7C,69731E7C] ltm=69731E84[69731E84,69731E84]
    pwt=69731E60[69731E60,69731E60] ptm=69731E68[69731E68,69731E68]
    ref=69731E9C[69731E9C,69731E9C] lnd=69731EA8[69731EA8,69731EA8]
    LIBRARY OBJECT: object=66177404
    type=CRSR flags=EXS[0001] pflags=[0000] status=VALD load=0
    CHILDREN: size=16
    child# table reference handle
    0 5887c454 5887c270 69641ffc
    1 5887c454 5887c400 693d29b4
    DATA BLOCKS:
    data# heap pointer status pins change whr
    0 57178070 6617749c I/P/A/-/- 0 NONE 00
    SO: 5C62D288, type: 53, owner: 5F375F38, flag: INIT/-/-/0x00
    LIBRARY OBJECT LOCK: lock=5c62d288 handle=5734d800 mode=N
    call pin=00000000 session pin=00000000 hpc=0000 hlc=0000
    htl=5C62D2D8[5C59D590,5C59D590] htb=5C59D590 ssga=5C59CD04
    user=5f375f38 session=5f375f38 count=0 flags=LRU/[4000] savepoint=0x17ee5af
    LIBRARY OBJECT HANDLE: handle=5734d800 mtx=5734D8B4(0) cdp=0
    name=SYS._default_auditing_options_
    hash=fab1a450ca8625c88d7aa501cb042efa timestamp=03-14-2008 18:46:51
    namespace=TABL flags=KGHP/TIM/SML/[02000000]
    kkkk-dddd-llll=0000-0001-0001 lock=N pin=0 latch#=1 hpc=3e1e hlc=3e1e
    lwt=5734D85C[5734D85C,5734D85C] ltm=5734D864[5734D864,5734D864]
    pwt=5734D840[5734D840,5734D840] ptm=5734D848[5734D848,5734D848]
    ref=5734D87C[5734D87C,5734D87C] lnd=5734D888[5734D888,5734D888]
    LIBRARY OBJECT: object=69e8d9e4
    type=TABL flags=EXS/LOC[0005] pflags=[0000] status=VALD load=0
    DATA BLOCKS:
    data# heap pointer status pins change whr
    0 572f55b0 69e8da7c I/-/A/-/- 0 NONE 00
    SO: 5C62CA38, type: 53, owner: 5F375F38, flag: INIT/-/-/0x00
    LIBRARY OBJECT LOCK: lock=5c62ca38 handle=54e2b2d0 mode=N
    call pin=00000000 session pin=00000000 hpc=0000 hlc=0000
    htl=5C62CA88[5C7875E0,5C59D458] htb=5C59D458 ssga=5C59CD04
    user=5f375f38 session=5f37d6a8 count=1 flags=[0000] savepoint=0x0
    LIBRARY OBJECT HANDLE: handle=54e2b2d0 mtx=54E2B384(0) cdp=0
    namespace=CRSR flags=RON/KGHP/PN0/EXP/[10010100]
    kkkk-dddd-llll=0000-0001-0001 lock=N pin=0 latch#=1 hpc=cb1c hlc=cb1c
    lwt=54E2B32C[54E2B32C,54E2B32C] ltm=54E2B334[54E2B334,54E2B334]
    pwt=54E2B310[54E2B310,54E2B310] ptm=54E2B318[54E2B318,54E2B318]
    ref=54E2B34C[66147E34,66147E34] lnd=54E2B358[54E2B358,54E2B358]
    LIBRARY OBJECT: object=51e651ac
    type=CRSR flags=EXS[0001] pflags=[0000] status=VALD load=0
    DEPENDENCIES: count=1 size=16
    AUTHORIZATIONS: count=1 size=16 minimum entrysize=18
    ACCESSES: count=1 size=16
    TRANSLATIONS: count=1 size=16
    DATA BLOCKS:
    data# heap pointer status pins change whr
    0 6a86de6c 51e65244 I/P/A/-/- 0 NONE 00
    6 66147cdc 9dabe588 I/-/A/-/E 0 NONE 00
    SO: 5C787590, type: 53, owner: 5F375F38, flag: INIT/-/-/0x00
    LIBRARY OBJECT LOCK: lock=5c787590 handle=57422b64 mode=N
    call pin=00000000 session pin=00000000 hpc=0000 hlc=0000
    htl=5C7875E0[5C59D458,5C62CA88] htb=5C59D458 ssga=5C59CD04
    user=5f375f38 session=5f37d6a8 count=1 flags=[0000] savepoint=0x4bc41571
    LIBRARY OBJECT HANDLE: handle=57422b64 mtx=57422C18(2) cdp=2
    name=insert into obj$(owner#,name,namespace,obj#,type#,ctime,mtime,stime,status,remoteowner,linkname,subname,dataobj#,flags,oid$,spare1,spare2)values(:1,:2,:3,:4,:5,:6,:7,:8,:9,:10,:11,:12,:13,:14,:15,:16, :17)
    hash=8876f3fed7222711572e6a76e623c9d3 timestamp=04-08-2010 17:06:19
    namespace=CRSR flags=RON/KGHP/TIM/PN0/MED/KST/DBN/MTX/[500100d0]
    kkkk-dddd-llll=0000-0001-0001 lock=N pin=0 latch#=1 hpc=60c0 hlc=60c0
    lwt=57422BC0[57422BC0,57422BC0] ltm=57422BC8[57422BC8,57422BC8]
    pwt=57422BA4[57422BA4,57422BA4] ptm=57422BAC[57422BAC,57422BAC]
    ref=57422BE0[57422BE0,57422BE0] lnd=57422BEC[57422BEC,57422BEC]
    LIBRARY OBJECT: object=6a7276e4
    type=CRSR flags=EXS[0001] pflags=[0000] status=VALD load=0
    CHILDREN: size=16
    child# table reference handle
    0 66148018 66147e34 54e2b2d0
    1 66148018 5896c0ec 6af7d37c
    DATA BLOCKS:
    data# heap pointer status pins change whr
    0 696b76e0 6a72777c I/P/A/-/- 0 NONE 00
    SO: 5C78B970, type: 53, owner: 5F375F38, flag: INIT/-/-/0x00
    LIBRARY OBJECT LOCK: lock=5c78b970 handle=54fbd288 mode=N
    call pin=00000000 session pin=00000000 hpc=0000 hlc=0000
    htl=5C78B9C0[5C787B90,5C59D1B0] htb=5C59D1B0 ssga=5C59CD04
    user=5f375f38 session=5f37d6a8 count=1 flags=[0000] savepoint=0x0
    LIBRARY OBJECT HANDLE: handle=54fbd288 mtx=54FBD33C(0) cdp=0
    namespace=CRSR flags=RON/KGHP/PN0/EXP/[10010100]
    kkkk-dddd-llll=0000-0001-0001 lock=N pin=0 latch#=3 hpc=f79a hlc=f79a
    lwt=54FBD2E4[54FBD2E4,54FBD2E4] ltm=54FBD2EC[54FBD2EC,54FBD2EC]
    pwt=54FBD2C8[54FBD2C8,54FBD2C8] ptm=54FBD2D0[54FBD2D0,54FBD2D0]
    ref=54FBD304[5BF92EF0,5BF92EF0] lnd=54FBD310[54FBD310,54FBD310]
    LIBRARY OBJECT: object=541e8b98
    type=CRSR flags=EXS[0001] pflags=[0000] status=VALD load=0
    DEPENDENCIES: count=1 size=16
    AUTHORIZATIONS: count=1 size=16 minimum entrysize=16
    ACCESSES: count=1 size=16
    TRANSLATIONS: count=1 size=16
    DATA BLOCKS:
    data# heap pointer status pins change whr
    0 693cb454 541e8c30 I/P/A/-/- 0 NONE 00
    6 5bf92e34 a021d62c I/-/A/-/E 0 NONE 00
    SO: 5C787B40, type: 53, owner: 5F375F38, flag: INIT/-/-/0x00
    LIBRARY OBJECT LOCK: lock=5c787b40 handle=5eb09aec mode=N
    call pin=00000000 session pin=00000000 hpc=0000 hlc=0000
    htl=5C787B90[5C59D1B0,5C78B9C0] htb=5C59D1B0 ssga=5C59CD04
    user=5f375f38 session=5f37d6a8 count=1 flags=[0000] savepoint=0x4bc41571
    LIBRARY OBJECT HANDLE: handle=5eb09aec mtx=5EB09BA0(2) cdp=2
    name=select o.owner#,o.name,o.namespace,o.remoteowner,o.linkname,o.subname,o.dataobj#,o.flags from obj$ o where o.obj#=:1
    hash=ae93e4a5100360375a3ff87632f4667e timestamp=04-02-2010 10:17:58
    namespace=CRSR flags=RON/KGHP/TIM/PN0/MED/KST/DBN/MTX/[500100d0]
    kkkk-dddd-llll=0000-0001-0001 lock=N pin=0 latch#=3 hpc=d23e hlc=d23e
    lwt=5EB09B48[5EB09B48,5EB09B48] ltm=5EB09B50[5EB09B50,5EB09B50]
    pwt=5EB09B2C[5EB09B2C,5EB09B2C] ptm=5EB09B34[5EB09B34,5EB09B34]
    ref=5EB09B68[5EB09B68,5EB09B68] lnd=5EB09B74[5EB09B74,5EB09B74]
    LIBRARY OBJECT: object=5bf92fd4
    type=CRSR flags=EXS[0001] pflags=[0000] status=VALD load=0
    CHILDREN: size=16
    child# table reference handle
    0 5bf92f60 5bf92d7c 5eb099a8
    1 5bf92f60 5bf92ef0 54fbd288
    2 5bf92f60 5b9aa120 576a80c8
    3 5bf92f60 5b9aa284 54f7a6d0
    DATA BLOCKS:
    data# heap pointer status pins change whr
    0 5eb09a7c 5bf9306c I/P/A/-/- 0 NONE 00

  • Global temporary table screwing up execution plan

    Hello
    I have a process I'm trying to optimise. The first part of the process opens a cursor, bulk collects, and then inserts the data into a table using FORALL. The next part uses another FORALL statement to insert into another table, using 4 of those collections populated by the bulk collect to control a select statement i.e.
    FORALL i IN 1..Collection1.COUNT
        INSERT
        INTO
             table
        SELECT
             t1.col1,
             t2.col2,
             t3.col3,
             Collection4(i)
        FROM
           table1 t1,
           table2 t2,
           table3 t3
        WHERE
           t1.pk = Collection1(i)
        AND
           t2.fk = t1.pk
        AND
           t3.fk = t1.pk;This statement is executed 50k+ times and takes about an hour. The execution plan for the select is fine, the time is just down to the number of itterations. Anyway, to try and make this quicker, I created a global temporary table to store the contents of the collections of interest, and then in a new cursor using the above select (replacing the collections with the columns in the temporary table), I bulk collect that into new collections and do the inserts. The problem is, that the optimiser assumes that the temporary table has 2 million+ rows in it for some strange reason, and so this completely changes the executions plan to give a cost of 180k! I can't analyze a temporary table so does anyone have an idea as to what I can do to make this work and bring the cost down to something more reasonable? Maybe an alternative strategy?
    Cheers

    <<I can't analyze a temporary table>>
    What version of Oracle do you use?
    SQL> create global temporary table mytable(col1 number,
      2  col2 date) on commit preserve rows;
    Table created.
    SQL> begin
      2  for i in 1..1000 loop
      3  insert into mytable values(i,sysdate);
      4  end loop;
      5  end;
      6  /
    PL/SQL procedure successfully completed.
    SQL> select count(1) from mytable;
      COUNT(1)
          1000
    SQL> set autot traceonly
    SQL> select count(1) from mytable;
    Execution Plan
       0      SELECT STATEMENT Optimizer=RULE
       1    0   SORT (AGGREGATE)
       2    1     TABLE ACCESS (FULL) OF 'MYTABLE'
    Statistics
              0  recursive calls
              0  db block gets
              5  consistent gets
              0  physical reads
              0  redo size
            199  bytes sent via SQL*Net to client
            277  bytes received via SQL*Net from client
              2  SQL*Net roundtrips to/from client
              0  sorts (memory)
              0  sorts (disk)
              1  rows processed
    SQL> ALTER SESSION SET OPTIMIZER_GOAL = ALL_ROWS;
    Session altered.
    SQL>  select count(1) from mytable;
    Execution Plan
       0      SELECT STATEMENT Optimizer=ALL_ROWS (Cost=11 Card=1)
       1    0   SORT (AGGREGATE)
       2    1     TABLE ACCESS (FULL) OF 'MYTABLE' (Cost=11 Card=8168)
    Statistics
              5  recursive calls
              0  db block gets
             10  consistent gets
              0  physical reads
              0  redo size
            211  bytes sent via SQL*Net to client
            277  bytes received via SQL*Net from client
              2  SQL*Net roundtrips to/from client
              2  sorts (memory)
              0  sorts (disk)
              1  rows processed
    SQL>
    SQL> ANALYZE TABLE MYTABLE COMPUTE STATISTICS;
    Table analyzed.
    SQL> select count(1) from mytable;
    Execution Plan
       0      SELECT STATEMENT Optimizer=ALL_ROWS (Cost=2 Card=1)
       1    0   SORT (AGGREGATE)
       2    1     TABLE ACCESS (FULL) OF 'MYTABLE' (Cost=2 Card=1000)
    Statistics
              0  recursive calls
              0  db block gets
              5  consistent gets
              0  physical reads
              0  redo size
            210  bytes sent via SQL*Net to client
            277  bytes received via SQL*Net from client
              2  SQL*Net roundtrips to/from client
              0  sorts (memory)
              0  sorts (disk)
              1  rows processed
    SQL> disconnect
    Disconnected from Oracle9i Enterprise Edition Release 9.2.0.3.0 - 64bit Production
    With the Partitioning option
    JServer Release 9.2.0.3.0 - Production

  • Global temp table and edit

    Hi all,
    Can someone tell me why when I create a GTT and insert the data like the followijng ,I get insert 14 rows msg. But when I do a select statement from sqlwork shop , sometimes i get the data sometimes I don't. my understanding is this data is supposed to stay during my logon session then got cleaned out when I exit session.
    I am developing a screen in apex and will use this temp table for user to do some editing work. Once ithe editing is done then I save the data into a static table. Can this be done ? So far my every attempt to update the temp table always result to 0 rows updated and the temp table reversed back to 0 rows. CAn you help me ?
    CREATE GLOBAL TEMPORARY TABLE "EMP_SESSION"
    (     "EMPNO" NUMBER NOT NULL ENABLE,
         "ENAME" VARCHAR2(10),
         "JOB" VARCHAR2(9),
         "MGR" NUMBER,
         "HIREDATE" DATE,
         "SAL" NUMBER,
         "COMM" NUMBER,
         "DEPTNO" NUMBER
    ) ON COMMIT PRESERVE ROWS
    insert into emp_session( EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
    select * from emp
    select * from emp_session
    -- sometimes I get 14 rows, sometimes 0 rows
    Thanks.
    Tai

    Tai,
    To say that Apex doesn't support GTT's is not quite correct. In order to understand why it is not working for you and how they may be of use in an Apex application, you have to understand the concept of a session in Apex as opposed to a conventional database session.
    In a conventional database session, as when you are connected with sqlplus then you have what is known as a dedicated session, or a synchronous connection. Temporary objects such as GTTs and packaged variables can persist across calls to the database. A session in Apex however is asynchronous by nature and a connection to the database is done through some sort of a server such as the Oracle HTTP server or the Apex Listener, which in effect maintains a pool of connections to the database and calls by your application aren't guaranteed to get the same connection for each call.
    To get over this, the guys who developed Apex came up with various methods to maintain session state and global objects that are persistent within the context of an Apex session. One of these is Apex collections, which are a device for maintaining collection like (array like) data that is persistent within an Apex session. These are Apex session specific objects in that they are local to the session that creates and maintains them.
    With this knowledge, you can then see why the GTT is not working for you and also how a GTT may be of use in an Apex application, provided you don't expect the data to persist across a call, as in a PL/SQL procedure. You should note though, that unless you are dealing with very large datasets, then a regular Oracle collection is preferable.
    I hope this explains your issue.
    Regards
    Andre

  • Life time of data in a Global Temporary Table.

    Dear Friends,
    I have a global temporary table in which I insert some values via a backend package, when forms start up and accessing it via the same package when user performs some changes in it - storing the value and during exit saving it in the master table. My problem is the data is not accessible while processing. I'm using Oracle9i Enterprise Edition Release 9.2.0.1.0 database and Forms [32 Bit] Version 6.0.8.8.0. I also give you the script in using which I created the temporary table.
    CREATE GLOBAL TEMPORARY TABLE GTT_PRA
    A1 VARCHAR2(10 BYTE) NOT NULL,
    A2 VARCHAR2(15 BYTE) NOT NULL,
    A3 VARCHAR2(10 BYTE) NOT NULL
    ON COMMIT DELETE ROWS;
    Why is that so? Please help me.
    With Regards,
    Senthil .A. Perumal.

    Dear Arun,
    Thank you for your script. But I'm accessing a large table, so for each and every process, the table get populated and grows very large giving some space problem, that is why I'm deleting rows when commiting. I would appreciate your help.
    Dear Yogesh,
    From the same forms I'm calling the backend package - will that be a different session. Once I'm calling to populate the table and next time I'm calling to store the user modified data and finally calling to store the data to master table. I think all are in the same sessions. Please reply me.
    Thank you dear friends fr your immediate response. I would really appreciate it.
    Regards,
    Senthil .A. Perumal.

Maybe you are looking for

  • Home page not displaying correctly

    My Home page is not displaying correctly - it is not updating from Muse. I have tried deleting all the files from the server and starting with a clean upload of each file and the homepage that is displaying is still an older version. Please advise if

  • How to define mapping from multiple files to Oracle Tables in 9i

    Around 100-200 Flat files are created every 30 minutes and each filename is different - Filename has datetime Stamp as part of the file name apart from the product code as first 12 characters. Can anyone guide me in How to define mappings to these fi

  • OBIEE 11g installation error while configuring (opmnctl error)

    While installing OBIEE 11g (11.1.1.3.0),(32-bit) we have choosen software only install and the software was installed successfully. While configuring in 10 th step we are getting the following errors. We have installed webserver before installing OBI

  • TickTime.cpp-207

    Is there an update coming soon to fix the "TickTime.cpp-207" error in Premiere Pro 6.03 (Windows 7)? This happens when I use the warp stabilizer.

  • Palm Desktop crashes on startup

    Hello, I am running Palm Desktop 6.2.2.0 under Win Vista, and have been for years. I have not installed any new software on either my Palm TX or my PC in weeks, maybe months. This morning I could open Palm Desktop just fine, this evening it crashes -