Blocker withdraws the deadlock trace file (self)

Hello

Recently, I had a problem on a 10.2.0.4 database to single instance where blockages are produced. The following test case reproduced the problem (I create three tables parent, a child table with foreign keys indexed to all parents three tables and a procedure that performs an insert in the child table in a standalone transaction):
create table parent_1(id number primary key);

create table parent_2(id number primary key);

create table parent_3(id number primary key);
 
create table child( id_c number primary key,
                   id_p1 number,
                   id_p2 number,
                   id_p3 number,
                   constraint fk_id_p1 foreign key (id_p1) references parent_1(id),
                   constraint fk_id_p2 foreign key (id_p2) references parent_2(id),
                   constraint fk_id_p3 foreign key (id_p3) references parent_3(id)
                   );
 
create index i_id_p1 on child(id_p1);

create index i_id_p2 on child(id_p2);

create index i_id_p3 on child(id_p3);

create or replace procedure insert_into_child as
pragma autonomous_transaction;
begin
  insert into child(id_c, id_p1, id_p2, id_p3) values(1,1,1,1);
  commit;
end;
/
 
insert into parent_1 values(1);

insert into parent_2 values(1);

commit;
And now the action that causes the deadlock:
SQL> insert into parent_3 values(1);

1 row created.

SQL> exec insert_into_child;
BEGIN insert_into_child; END;

*
ERROR at line 1:
ORA-00060: deadlock detected while waiting for resource
ORA-06512: at "SCOTT.INSERT_INTO_CHILD", line 4
ORA-06512: at line 1
My question is: How can I determine which integration into the CHILD table waiting for? He could wait on a combination of these, PARENT_3, PARENT_2, PARENT_1, or even on the CHILD if I tried to insert a primary key that is duplicated in the CHILD. Since we have the full test case, we know that he was waiting on PARENT_3 (or better said, he expected to perform a commit / rollback of the transaction 'parent'), but is it possible to determine that only from the deadlock trace file? I ask that because to identify the problem, I had to perform redo log mining, tracing pl/sql with DBMS_TRACE and manual debugging on a clone of the production database that has been restored to a SNA just before blocking is product. So, I had to do a lot of work to get to the trainer table and if this information is already in the deadlock trace file, it would have saved me a lot of time.

Here is the deadlock trace file. In section "DML LOCK", I assumed that the child table (tab = 227042) holds a 3 way locks (SX), all other tables of three parents have a mode 2 locks (SS), but from this excerpt, I see that parent_3 (tab = 227040) blocks the children insert:
Deadlock graph:
                       ---------Blocker(s)--------  ---------Waiter(s)---------
Resource Name          process session holds waits  process session holds waits
TX-00070029-00749150        23     476     X             23     476           S
session 476: DID 0001-0017-00000003     session 476: DID 0001-0017-00000003
Rows waited on:
Session 476: obj - rowid = 000376E2 - AAA3biAAEAAA4BwAAA
  (dictionary objn - 227042, file - 4, block - 229488, slot - 0)
Information on the OTHER waiting sessions:
End of information on OTHER waiting sessions.
Current SQL statement for this session:
INSERT INTO CHILD(ID_C, ID_P1, ID_P2, ID_P3) VALUES(1,1,1,1)
----- PL/SQL Call Stack -----
  object      line  object
  handle    number  name
3989eef50         4  procedure SCOTT.INSERT_INTO_CHILD
391f3d870         1  anonymous block
.
.
.
.
        SO: 397691978, type: 36, owner: 39686af98, flag: INIT/-/-/0x00
        DML LOCK: tab=227042 flg=11 chi=0
                  his[0]: mod=3 spn=35288
        (enqueue) TM-000376E2-00000000  DID: 0001-0017-00000003
        lv: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  res_flag: 0x6
        res: 0x398341fe8, mode: SX, lock_flag: 0x0
        own: 0x3980df420, sess: 0x3980df420, proc: 0x39859c660, prv: 0x398341ff8
        ----------------------------------------
        SO: 397691878, type: 36, owner: 39686af98, flag: INIT/-/-/0x00
        DML LOCK: tab=227040 flg=11 chi=0
                  his[0]: mod=2 spn=35288
        (enqueue) TM-000376E0-00000000  DID: 0001-0017-00000003
        lv: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  res_flag: 0x6
        res: 0x3983386e8, mode: SS, lock_flag: 0x0
        own: 0x3980df420, sess: 0x3980df420, proc: 0x39859c660, prv: 0x3983386f8
        ----------------------------------------
        SO: 397691778, type: 36, owner: 39686af98, flag: INIT/-/-/0x00
        DML LOCK: tab=227038 flg=11 chi=0
                  his[0]: mod=2 spn=35288
        (enqueue) TM-000376DE-00000000  DID: 0001-0017-00000003
        lv: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  res_flag: 0x6
        res: 0x398340f58, mode: SS, lock_flag: 0x0
        own: 0x3980df420, sess: 0x3980df420, proc: 0x39859c660, prv: 0x398340f68
        ----------------------------------------
        SO: 397691678, type: 36, owner: 39686af98, flag: INIT/-/-/0x00
        DML LOCK: tab=227036 flg=11 chi=0
                  his[0]: mod=2 spn=35288
        (enqueue) TM-000376DC-00000000  DID: 0001-0017-00000003
        lv: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  res_flag: 0x6
        res: 0x39833f358, mode: SS, lock_flag: 0x0
        own: 0x3980df420, sess: 0x3980df420, proc: 0x39859c660, prv: 0x39833f368
      ----------------------------------------
Thanks in advance for your comments,
Swear

user633661 wrote:

My question is: How can I determine which integration into the CHILD table waiting for? He could wait on a combination of these, PARENT_3, PARENT_2, PARENT_1, or even on the CHILD if I tried to insert a primary key that is duplicated in the CHILD. Since we have the full test case, we know that he was waiting on PARENT_3 (or better said, he expected to perform a commit / rollback of the transaction 'parent'), but is it possible to determine that only from the deadlock trace file?

There is no way to get the answer from the deadlock trace.

At this stage and with your example, the waiting session waits for a lock of the TX (transaction) - this means that he has no idea (and uninteresting) in the involved actual data, that it is simply waiting for a location of transaction undo segment header table clear.

An easy way to demonstrate, it is as follows:-


create the parent and child tables with the activated FK constraint
Session 1 - set a save point, then insert line into parent but do not commit
Session 2 - insert a load line in the child - the session will pass a waiting for TX lock on the parent transaction
Session 1-restoration to the point of backup

Because restoration is a save point, session 1 always held a TX lock in exclusive mode, even if it will take is more all lock TM (table).
Session 2 will still wait for session 1 to commit or rollback - even if the parent required row does not exist, even in a State that is not validated.

Concerning
Jonathan Lewis
http://jonathanlewis.WordPress.com
Author: core Oracle

Tags: Database

Similar Questions

  • is trace SQL - possible to appoint the output trace file?

    Hello

    I put DBMS_SYSTEM. SET_SQL_TRACE_IN_SESSION in my database. This is the version 10.2 running on Linux.
    Now, I want to display the trace file using tkprof. It is in my directory in $ORACLE_BASE/admin/SID/udump. But there are more tracks and they are all the same: instancename_ora_traceid, is very difficult to find the right one.
    Is it possible to make the sql trace file to be named by any other means?

    Thanks in advance.
    Sousou

    Hello

    Yes, you can change then what is the purpose of this
    ALTER session set tracefile_identifier = trace_file_name

    Add with the tracefile_identifier

    Select c.value | '\' || d.instance_name | "_ora_" | a.SPID | '.trc' trace_file_is_here
    v $ process a, v$ session b, v$ parameter c, v$ instance d
    where a.addr = b.paddr
    and b.audsid = userenv ('sessionid')
    and c.nom = 'user_dump_dest;

    -Pavan Kumar N

    Published by: pounet on December 9, 2008 22:23

  • The server trace file sharing

    Hi all

    Our production database is 10.2.0.3 with 2 RAC nodes in the window MS 2003 servers. I wonder what kind of information that Oracle captures in the trace of the shared server file (file name looks like instance_s001_3333.trc). When I open some of these files I still see a single query always there along with messages like:

    WAITING #8: nam = 'gc cr block 2 ways' ela = 1222 p1 = p2 65 = 49677 p3 = 1 obj #= tim 69689 = 4137263779
    WAITING #8: nam = 'gc cr block 2 ways' ela = 593 p1 = p2 65 = 50863 p3 = 1 obj #= tim 69689 = 4137265531
    WAITING #8: nam = 'gc cr block 2 ways' ela = 592 65 p1 = p2 = 50879 p3 = 1 obj #= tim 69689 = 4137266700

    If we need to grant this request to make it disappear in the shared server trace files? What are the conditions to trigger Oracle put this request in the trace file?

    Thank you very much in advance for your support!

    Shirley

    I did a quick test with 10.2.0.1 EE on Linux with default shared server configuration. I have run your trace statements, and I see:
    -1 small file trace with the identifier of the EMT in USER_DUMP_DEST
    -1 large track .trc file s000 in BACKGROUND_DUMP_DEST.

    And it looks like the outcome according to trcsess doc. http://download.Oracle.com/docs/CD/B19306_01/server.102/b14211/SQLTrace.htm#PFGRF01050

    >
    However, in a shared server configuration a user session is served by different processes from time to time. The trace on the user session is dispersed across the different stack belonging to different processes.
    >

    Most traced statements are in the trace file to the shared server because it's the shared server that runs most of the SQL statements.

  • set up the default trace file

    I would like to know how to configure the trace file by default so that I receive event log entries related to the trace of departure.  I know also what tracks are available and how to ensure that one does not work that I don't need.

    Hello

    I suggest you return the item mentioned below.

    default trace enabled Option

    http://msdn.Microsoft.com/en-us/library/ms175513.aspx

    If this does not help then, I suggest that you post your query in the MSND forums for assistance.

    http://social.msdn.Microsoft.com/forums/en/categories/

  • To find the log/trace file containing the error ORA-00018

    We use the Oracle 10 g on Linux platform. Our application Java has generated the error below:

    An error occurred during the processing of the SQL statement... ORA-00018: exceeded maximum number of sessions

    java.sql.SQLException: ORA-00018: exceeded maximum number of sessions

    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:113)

    S/n, said he can't see this error in the alert log file. I want to know if there is any place in the Oracle Server i.e. any file/trace log file that can contain this error.

    Elya wrote:

    We use the Oracle 10 g on Linux platform. Our application Java has generated the error below:

    An error occurred during the processing of the SQL statement... ORA-00018: exceeded maximum number of sessions

    java.sql.SQLException: ORA-00018: exceeded maximum number of sessions

    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:113)

    S/n, said he can't see this error in the alert log file. I want to know if there is any place in the Oracle Server i.e. any file/trace log file that can contain this error.

    Oracle has two General classifications of errors; Errors database & application errors.

    Oracle logs in the database for the file alert_SID.log errors.

    Oracle will NOT connect to an error in application & permit enforcement measures considered appropriate (there included logging) for application errors.

    This application uses connection pooling.

    If not, why?

  • Trying to manage the background trace files

    With all the parameters of track known to zero, there are daily newspapers of processes that have no discernible purpose.  I'm looking for advice and solutions to reduce chatter.  I searched and have not yet found a source to explain why we need them.

    Since RDBMS 11 g, you can set the parameters of adrci SHORTP_POLICY and LONGP_POLICY.

    For example:

    [oracle@xxxxxxx ~] $ adrci

    ADRCI: Version 11.2.0.3.0 - Production on Mon Feb 4 11:15:54 2013

    Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

    Basis of the ADR = ' / u01/app/oracle '.
    adrci > show houses
    Houses of ADR:
    diag/rdbms/xxx/xxx
    diag/tnslsnr/xxxxxx/listener
    adrci > put House diag/rdbms/xxx/xxx
    adrci > set (SHORTP_POLICY = 240) # 240 hours: 10 days
    adrci > set (LONGP_POLICY = 240)
    adrci > put House diag/tnslsnr/xxx/listener
    adrci > set (SHORTP_POLICY = 240)
    adrci > set (LONGP_POLICY = 240)

    You can manually delete the trace files:

    adrci > put House diag/tnslsnr/xxx/listener

    adrci > purge - age 1440 - type track

    I hope this helps

    Borys

  • Address of the instantiation of the cursor in the SQL trace files > = 11.2.0.2

    Oracle Doc ID 11677061.8 mentions in 11.2.0.2 10046 trace / SQL_TRACE displays the address of the instantiation after the # rather than the number of cursor.

    Can someone explain what a "address instantiation" is and how to use it to identify the sliders in the trace of the files in an improvement on number of cursor.

    I have a theory that it may be useful when dealing with accumulated from several trace files using trcsess trace data.

    For the most part, I'm just curious to see if I can improve my performance skills by exploiting this change.  I can't find a single reference in the article or the blog describing the change.

    An example of the largest number of cursor that I see these days.

    PARSING IN CURSOR #48003855878616 len=65 dep=0 uid=370 oct=6 lid=370 tim=1366907498174148 hv=1477430740 ad='209f99a028' sqlid='40hwrntc0zmfn'

    ANALYSIS #48003855878616:c = 0, e = 4842, p = 0, cr = 0, cu = 0, set = 0, r = 0, dep = 0, og = 1, plh = 0, tim = 1366907498174146


    Pre 11.2.0.2 what it would look like


    PARSING IN CURSOR #3 len=65 dep=0 uid=370 oct=6 lid=370 tim=1366907498174148 hv=1477430740 ad='209f99a028' sqlid='40hwrntc0zmfn'

    ANALYSIS # 3: c = 0, e = 4842, p = 0, cr = 0, cu = 0, = 0, r = 0, dep = 0, og = 1, plh = 0, tim = 1366907498174146



    Here's what I read on the subject in 2010:

    The problem is that with the restructured cursor caching in 11g a statement executed again would come by number of different cursor for each run. As the number of cursor and the sqltext did not since the last use of the slider, the sqltext was printed for each execution of a cursor. It's a significant problem for applications like Oracle E-Business, where is typical SQL statement it is many thousands of characters. In some cases, this has increased the size of the file trace of an order of magnitude, and I'm sure it could be even worse.

    The solution was to pass the handle of the cached cursor (which is probably the address) and display instead of the cursor number. This should mean that the text is printed only on the first analysis of the SQL statement and the size of the trace file goes back to something reasonable.

    I believe you can "join" these new id values cursor from a trace file in a column of address in v$ sql, but I have not checked myself.

    I do not think that the change was intended to give the advantage of trcsess you are suspect, but it could turn out to be useful for this.

  • can I remove the cross trace files?

    Hello

    My oracle home is full, I deleted all the files under BDUMP trace.
    I want to delete the trace files in the folder $ORACLE_BASE/diag/prod/prod/incident, the files have for jan, Feb and March Date of the.
    is there an impact on the database if I delete this trace of incident?
    and what are the other newspapers that do I remove the $ORACLE_HOME?
    Kindly let me know...

    Thank you

    You can delete the *.trc and it will not harm without worries.
    You can delete *.aud and they will not affect your database
    You can alertlog_sid.log and database will recreate again.

    Osama

  • How to understand this record in the 10046 trace file?

    PARSING IN CURSOR #2 len = 858 dep = uid 0 = 111 oct = 6 = 111 cover tim = hv 1256543410797412 = ad 2676499787 = "179f5c1c00" sqlid = "ac39602gsh9ab."
    UPDATE T_Order SET effects =: 1, SettlementGroupID =: WHERE the 2 effects =: AND SettlementGroupID = 40: 41 AND SettlementID =: AND OrderSysID = 42: 43
    END OF STMT
    # 2 EXEC: c = 300954, e = 315012, p = 0, cr = 4295032071, cu = 0, put = 1, r = 0, dep = 0, og = 1, plh is 3836259006, tim = 1256543410797412


    c = 300954?
    e = 315012?
    , p = 0, ?
    CR = 4295032071?
    CU = 0?
    GIS = 1?
    r = 0?
    DEP = 0?
    og = 1?
    PLH = 3836259006?
    Tim = 1256543410797412?

    Hello

    You can see the Note: 39817.1 (Raw SQL_TRACE and DBMS_SUPPORT interpretation. Exit START_TRACE) for more information on My Oracle Support if you wish.

    Kind regards

    Mark

  • How to find the trace file

    Hi all

    I generated a trace to help file:

    SQL > alter system set events "1940 trace name errorstack level 3";

    Modified system.

    SQL > drop user RHUNTER1;
    Drop user RHUNTER1
    *
    ERROR on line 1:
    ORA-01940: cannot delete a user who is currently logged on

    "SQL > alter system set ' 1940 trace name errorstack off events."

    Modified system.


    It's oracle database 10 g 2. Now, I checked for file trace udump. but there are a lot of generating a minute trace files. How can I find the exact trace file.

    Please help to find it.

    Thank you

    Here is the SQL that will tell you what will be your trace file name:

    MPOWEL01> l
      1   select i.value||'_ora_'||p.spid||'.trc'
      2    from v$process p, v$session s,
      3      (select value from v$parameter where name = 'instance_name') i
      4    where p.addr = s.paddr
      5*  and s.sid = userenv('sid')
    MPOWEL01> /
    
    I.VALUE||'_ORA_'||P.SPID||'.TRC'
    --------------------------------------------------------------------------------
    XXXX_ora_3014738.trc
    

    I built my own code to do this, but the above is leave a blog link, I save to the reading of the trace that you created in your session. See
    http://dioncho.WordPress.com/2009/03/19/

    HTH - Mark D Powell.

  • Cannot write trace files destined for the bottom dump in oracle 10 g

    Hi all

    Version of the OS: RHEL 5.7
    DB version: 10.2.0.4
    cluster: database node 2 RAC

    Today I faced a strange behavior for one of our production database. Its a database of 2 rac nodes. There is no automatic generation of trace files in the destination of bottom dump on the first node. I am able to see the second trace files in its context dump dest. But the strange behavior occurs on the first node. I see that alert logfile in the bottom dump dest. Despite an error that displays the generated trace file but no file is located in the bdump. Here is the error, but physically he no trace file is generated:
    Errors in file/oracle/db/admin / < sid > /bdump/ < sid >j0011558.trc:
    ORA-12012: error on auto run 94377 work
    ORA-12008: error path refresh materialized view
    can someone have any idea for this strange behavior. There is no script maintenance for the removal of trace files.

    Kind regards
    Imran Khan

    its his work after you re-create your synonym then Yes you should not recreate MV again.

  • Discover the traces files when DBMS. TRACE is used

    Hi all
    How can I view trace file when DBMS_TRACE. SET_PLSQL_TRACE is run?

    Suppose I have the following procedure
    create or replace procedure some_proc is
    first varchar(10);
    begin
    select first_name into first from employees where first_name='Eleni';
    dbms_output.put_line(first);
    end some_proc;
    running the static sql query and I want to see how the DBMS_TRACE exports information about the trace file. I run the tracetab.sql
    SQL> @/usr/local/oracle/product/11.2.0/dbhome_1/rdbms/admin/tracetab.sql
    recompile the procedure
    SQL> alter procedure some_proc compile debug reuse setting;
    Start the trace
    SQL> exec dbms_trace.set_plsql_trace(dbms_trace.trace_all_sql)
    Run the procedure
    SQL> exec hr.some_proc
    get the location of the file record of the session in question
    SELECT value
    FROM v$diag_info
      3  WHERE name = 'Default Trace File';
    
    VALUE
    -------------------------
    /usr/local/oracle/diag/rd
    bms/inara/inara/trace/ina
    ra_ora_6309.trc
    but when I view the file, I can't find information on the sql statement. Here is the last part of inara_ora_6309.trc which shows the debatable part:
    *** 2011-09-08 12:56:29.712
    *** SESSION ID:(132.70) 2011-09-08 12:56:29.712
    *** CLIENT ID:() 2011-09-08 12:56:29.712
    *** SERVICE NAME:(SYS$USERS) 2011-09-08 12:56:29.712
    *** MODULE NAME:(sqlplus@firefly (TNS V1-V3)) 2011-09-08 12:56:29.712
    *** ACTION NAME:() 2011-09-08 12:56:29.712
     
    --NOTICE  ---------------------------------------
    --PL/SQL TRACE INFORMATION IS NOW IN THE DATABASE
    -- To create the trace tables, use the script  --
    -- rdbms/admin/tracetab.sql under ORACLE_HOME  --
    The part that I've done wrong? The procedure is sufficient so that the trace info does not appear? I have consulted the wrong trace file?

    Best regards
    Val

    Published by: Valerie good-natured Sep 8, 2011 12:15 AM

    Hello

    The message seems pretty clear to me:

    --PL/SQL TRACE INFORMATION IS NOW IN THE DATABASE
    

    You can view trace information by querying the tables that you created by using the tracetab.sql script.

    SELECT * FROM plsql_trace_events;
    SELECT * FROM plsql_trace_runs;
    
  • How to restore control of the trace file file

    How to restore control of the trace file file?

    say I have a file of trace control file and I've lost all control file copies. The only backup of control file is the control file record.

    What are the steps to follow.

    Version: 10.2.0.4
    OS: Solaris 10

    SQL > alter database backup controlfile to trace;

    After giving this statement, oracle will write the CREATE CONTROLFILE statement in a trace file. The trace file will be randomly
    called something like ORA23212. TRC and it is created in the USER_DUMP_DEST directory.

    2. go in the USER_DUMP_DEST directory and open the last trace file in the text editor. This file will contain the CREATE CONTROLFILE
    statement. It will be two sets of instruction with RESETLOGS and one without option RESETLOGS RESETLOGS.use of the CREATE CONTROLFILE statement.
    Now, copy and paste the statement into a file. Whether c.sql

    3. now open the c.sql file in the text editor and set the name of the database to ica to prod illustrated in the example below (replaced REUSE to the GAME)

    CREATE CONTROLFILE

    Prod to DEFINE a DATABASE

    LOGFILE GROUP 1 ('/ u01/oracle/ica/redo01_01.log',)

    U01/Oracle/ICA/redo01_02.log'),

    GROUP 2 ('/ u01/oracle/ica/redo02_01.log',)

    U01/Oracle/ICA/redo02_02.log'),

    GROUP 3 ('/ u01/oracle/ica/redo03_01.log',)

    U01/Oracle/ICA/redo03_02.log')

    RESETLOGS

    DATAFILE ' / u01/oracle/ica/system01.dbf' SIZE 3 m.

    ' / SIZE of the 5 M u01/oracle/ica/rbs01.dbs.

    ' / SIZE of the 5 M u01/oracle/ica/users01.dbs.

    ' / SIZE of the 5 M u01/oracle/ica/temp01.dbs

    MAXLOGFILES 50

    MAXLOGMEMBERS 3

    MAXLOGHISTORY 400

    MAXDATAFILES 200

    MAXINSTANCES 6

    ARCHIVELOG;

    SQL > STARTUP NOMOUNT;

    5. now run the c.sql script

    SQL > @/u01/oracle/c.sql

    6. now, open database with RESETLOGS

    SQL > ALTER DATABASE OPEN RESETLOGS;

    Thank you.

  • Trace files showing the bind variable value =""

    10g on solaris

    Hi all

    We have a problem with an informatica workflow brings an update statement in Oracle in trems of performace.

    I started using DBMS_SUPPORT tracing with lie the TRUE value. He captured the trace files accordingly against a controlled set of data. Trace TWOT files were produced.

    Trace files first shows the SELECT statement are questions that identifies the records that will be updated.

    The 2nd trace file shows the actual UPDATE statement published as a PL/SQL loop to do the update.

    There are 20 records that users have rigged last updated and the update statement lists 20 cases where updates taking place. All updates occurred successfully after reviewing the results of the post. However my question is why the trace files are showing the values of bind as the value ""?... any ideas appreciated!

    an excerpt of the file trace...
    PARSING IN CURSOR #1 len = 123 dep = uid 0 = 1482 oct = 6 lid = tim 1482 = 994827916280 = ad 3649357857 hv = "8b5b98f0."
    UPDATE / * + index (FCT_TASK IDX_FCT_TASK_CASE_SBL_ROW_ID) * / FCT_TASK SET DWH_LAST_UPD_DT = SYSDATE WHERE CASE_SBL_ROW_ID =: 1
    END OF STMT
    # 1 ANALYSIS: c = 10000, e = 980, p = 0, cr = 0, cu = 0, put = 1, r = 0, dep = 0, og = 1, tim = 994827916264
    =====================
    PARSING IN CURSOR #5 len = 227 dep = 1 uid = 0 oct = cover 3 = 0 tim = hv 994827919231 = ad 2190775527 = "8e622670".
    Select obj$ o, user$ u u.name, o.name, t.update$, t.insert$, t.delete$, t.enabled, trigger$ t where t.baseobject =: 1 and t.obj #= o.obj # and o.owner # u.user = # and bitand (property, 16) = 0 and bitand (property, 8
    ) = 0 order by o.obj #.
    END OF STMT
    ANALYSIS #5:c = 0, e = 1310, p = 0, cr = 0, cu = 0, put = 1, r = 0, dep = 1, og = 1, tim = 994827919223
    LINKS FOR #5:
    bind 0: dty = 2 mxl = 22 (22) bad = 00 scl = 00 pre = 00 = 00 = 0001 size = 24 offset = 0 oacfl2 oacflg
    BFP = bln ffffffff7c058d98 = 22 avl = flg 04 = 05
    value = 425212
    EXEC #5:c = 10000, e = 9476, p = 0, cr = 0, cu = 0, put = 1, r = 0, dep = 1, og = 4, tim = 994827928883
    FETCH #5:c = 0, e = 104, p = 0, cr = 1, cu = 0, set = 0, r = 0, dep = 1, og = 4, tim = 994827929051
    "STAT id #5 = 1 cnt = 0 pid = 0 pos = 1 obj = 0 op =' SORT ORDER BY (cr = 1 pr = 0 pw = time 0 = 172 en)"
    "STAT id #5 = 2 cnt = 0 pid = 1 pos = 1 obj = 0 op ='NESTED LOOPS (cr = 1 pr = 0 pw = time 0 = 110 US)"
    "STAT id #5 = 3 cnt = 0 pid = 2 pos = 1 obj = 0 op ='NESTED LOOPS (cr = 1 pr = 0 pw = time 0 = 105 en)"
    STAT id #5 = 4 cnt = 0 pid = 3 pos = 1 obj = op 79 ='$ TABLE ACCESS BY INDEX ROWID TRIGGER (cr = 1 pr = 0 pw = time 0 = 103 US)'
    "STAT id #5 = 5 cnt = 0 pid = 4 pos = 1 obj = 123 op ='INDEX RANGE SCAN I_TRIGGER1 (cr = 1 pr = 0 pw = time 0 = 78 US)"
    "STAT id #5 = 6 cnt = 0 pid = 3 pos = 2 obj = op 18 ='TABLE ACCESS BY INDEX ROWID OBJ$ (pr = 0 pw = time cr = 0 0 = 0 US)"
    "STAT id #5 = 7 cnt = 0 pid = 6 pos = 1 obj = op 36 ='INDEX SCAN SINGLE I_OBJ1 (cr = 0 pr = 0 pw = time 0 = 0 US)"
    "STAT id #5 = 8 cnt = 0 pid = 2 pos = 2 obj = op 22 =' CLUSTER ACCESS USER TABLE $ (pr = 0 pw = time cr = 0 0 = 0 US)"
    "STAT id #5 = 9 cnt = 0 pid = 8 pos = 1 obj = op 11 ='INDEX UNIQUE SCAN I_USER # (pr = 0 pw = time cr = 0 0 = 0 US)"
    LINKS FOR #1:
    bind 0: dty = 1 mxl = 32 (30) bad = 00 scl = 00 pre = 00 oacflg = 01 oacfl2 = 800000 size = 32 offset = 0
    BFP = bln ffffffff7c17b0a0 = 32 avl = flg 04 = 05
    value =""
    # 1 EXEC: c = 8390000, e = 8740989, p = 55593, cr = 55610, cu = 3, put = 1, r = 1, dep = 0, og = 1, tim = 994836657483
    LINKS FOR #1:
    bind 0: dty = 1 mxl = 32 (30) bad = 00 scl = 00 pre = 00 oacflg = 01 oacfl2 = 800000 size = 32 offset = 0
    BFP = bln ffffffff7c17b0a0 = 32 avl = flg 04 = 05
    value =""
    # 1 EXEC: c = 7980000, e = 7962369, p = 55591, cr = 55608, cu = 1, SIG = 0, r = 1, dep = 0, og = 1, tim = 994844621479
    LINKS FOR #1:
    bind 0: dty = 1 mxl = 32 (30) bad = 00 scl = 00 pre = 00 oacflg = 01 oacfl2 = 800000 size = 32 offset = 0
    BFP = bln ffffffff7c17b0a0 = 32 avl = flg 04 = 05
    value =""


    ect ect ect...



    Concerning
    Satnam
    BINDS #1:
    bind 0: dty=1 mxl=32(30) mal=00 scl=00 pre=00 oacflg=01 oacfl2=800000 size=32 offset=0
    bfp=ffffffff7c17b0a0 bln=32 avl=04 flg=05
    value=""
    

    'dty = 1' indicates that the data type is VARCHAR or NVARCHAR. As the timestamp data types data types BLOB, and various other, bind variables defined as NVARCHAR will not have their values dumped in a 10046 trace file. I suspect that the: 1 binding variable is passed as an a NVARCHAR2.

    Charles Hooper
    Co-author of "Expert Oracle practices: Oracle Database Administration of the Oak Table.
    http://hoopercharles.WordPress.com/
    IT Manager/Oracle DBA
    K & M-making Machine, Inc.

  • Generate the Trace file to a sql query

    Hi all

    I want to generate a trace for a sql query file so that I can generate a .out file corresponding I need to check the performance of an application before using it.
    Anyone can guide me please how to do this.
    I know how do to generate a trace for a concurrent program, but right now, I want to track for a simple sql query.

    Kind regards
    Ankur

    Hello
    Agreed. but I thought that if OP do not have access to metalink then?

    In any case I not substitute me your answer.

    Oops. Sorry I did not read the lines below.

    You can turn simple trace for this particular session.
    Oracle will generate trace files (.trc) for each session where the value of SQL_TRACE = TRUE and write them to the USER_DUMP_DEST destination. That you can use tkprof to read the generated trace file.

    Kind regards
    Taj

    Published by: Mohammed Taj on July 14, 2009 10:11

Maybe you are looking for

  • Stream7 create a recovery media after upgrade to win10

    unboxed my stream7 a few days earlier and let it update and got the 'time to get win10' icon in the systray.  I created win8.1 media restoration until I take the not... so I can go back to a clean win8... because I have now about free 3.5gig after th

  • Windows 7 Home Premium x 64: activation of the service Windows Update crashes my computer after upgrade RAM

    A few days ago I had two sticks of 2 GB GSkill RAM by mail. Here's the same brand, model and size as the pair currently installed (obviously). (Sticks alternate according to the specifications of the card from my mother) After you have installed the

  • Problems of resettlement SlingPlayer Desktop in Vista

    Used SlingPlayer for a year, then it stopped working. Sling Media support-suggested I uninstall and reinstall.  When I tried to reinstall I got the message "unable to save the Slingshot SDK. Please contact your system administrator to install this so

  • Cisco Anyconnect mobile licenses

    Hello We need to buy 1200 anyconnect Apex licence, I read the ordering guide for anyconnect but he's confused, I have to mention that we have 2 ASA 5545 - X in cluster mode, I don't know how to order. It's the way that I think is true, but I'm not su

  • System 5 projected QTP installation on Windows 7 machine error code.

    I used the Windows Installer cleanup utility to remove installed applications. Later, when I try to install QTP on the machine, there is error is displayed with the system 5 error code. I wonder if the Windows Installer Cleanup utility had caused dam