Help to interpret trace file
Hi,
Can someone please tell me what is the meaning of stack number in the file generated ny dbms_trace. how to interpret the trace file.
Thanks in advance.
Mathew
Hi,
The cause of an ORA-1555 is quite simple :
U start a long transaction (named T1) at time t1. Ur transaction T1 made lots of things such as
insert/update/delete, ...
At time t1, ur transaction T1 update a block named b1. This block is copied in the rolback segment with a "non commited" status in the block header. This "before image" of ur block cannot be deleted from the RBS cause of his "non committed" status.
Ur transaction T1 now commit the modifications => the header of the block b1 in the RBS is upadted with the status "commited". Once the block has the "commited" status, he can be removed from the RBS and Oracle may remove this one if he needs some space in the RBS for some other before image.
At time t2, another transaction (named T2) start and update some rows so T2 will need some space in the RBS and then erase the version of the block b1 (in the RBS).
At time t67 (some time after), ur transaction T1 (the long one) need to read again the block b1. But as T1 has been started at time t1, Oracle will search for an image of the block b1 at time t1 (to ensure read consistency). But, as transaction T2 erased this before image of the block b1, Oracle cant find it and send u the error ORA-01555...
To avoid ORA-015[i]Long postings are being truncated to ~1 kB at this time.
Similar Messages
-
Hi everybody,
I need to know how to read and interpret information from a trace file .
Is there any third party utility to convert all the information into readable text format
so that it can be easily understood.
Please help
Altafhttp://www.oracle.com/pls/db102/to_URL?remark=ranked&urlname=http:%2F%2Fdownload.oracle.com%2Fdocs%2Fcd%2FB19306_01%2Fserver.102%2Fb14211%2Fsqltrace.htm%23PFGRF01020
and
http://download.oracle.com/docs/cd/B19306_01/server.102/b14211/sqltrace.htm#PFGRF01010
You don't need a third party converter.
Message was edited by:
Lost_In_Transition -
Interpreting Trace File.
Hi i am using 10.2.0.4.0 version of oracle.
I am having trace file info as below, for one of the query. So how should i interpret the trace file? What is the issue in the query, and the scope of improvement in the query? please note that , i have removed the query and its plans from the trace file, i have only posted the wait sections.
call count cpu elapsed disk query current rows
Parse 1 0.14 0.13 0 0 1 0
Execute 1 6.63 162.12 33540 72921 383 0
Fetch 17272 178.89 1933.95 274835 3147603 20 259063
total 17274 185.66 2096.21 308375 3220524 404 259063
Misses in library cache during parse: 1
Optimizer mode: CHOOSE
Parsing user id: 36
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
control file sequential read 4 0.00 0.00
db file sequential read 302812 0.62 1913.89
latch: cache buffers chains 3 0.04 0.04
direct path write temp 501 0.01 0.30
SQL*Net message to client 17272 0.00 0.04
db file scattered read 120 0.02 0.63
direct path read temp 608 0.14 1.71
SQL*Net message from client 17272 44.81 31865.74
SQL*Net more data to client 15 0.00 0.00
latch: object queue header operation 1 0.00 0.00
latch: library cache 3 0.03 0.04
latch: library cache pin 1 0.00 0.00
latch: cache buffer handles 1 0.00 0.00
OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS
call count cpu elapsed disk query current rows
Parse 1 0.14 0.13 0 0 1 0
Execute 1 6.63 162.12 33540 72921 383 0
Fetch 17272 178.89 1933.95 274835 3147603 20 259063
total 17274 185.66 2096.21 308375 3220524 404 259063
Misses in library cache during parse: 1
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 17275 0.00 0.04
SQL*Net message from client 17274 75.57 31941.39
SQL*Net more data from client 2 0.00 0.01
db file sequential read 302812 0.62 1913.89
control file sequential read 4 0.00 0.00
latch: cache buffers chains 3 0.04 0.04
direct path write temp 501 0.01 0.30
db file scattered read 120 0.02 0.63
direct path read temp 608 0.14 1.71
SQL*Net more data to client 15 0.00 0.00
latch: object queue header operation 1 0.00 0.00
latch: library cache 3 0.03 0.04
latch: library cache pin 1 0.00 0.00
latch: cache buffer handles 1 0.00 0.00
OVERALL TOTALS FOR ALL RECURSIVE STATEMENTS
call count cpu elapsed disk query current rows
Parse 11 0.02 0.01 0 0 0 0
Execute 348 0.20 0.17 0 0 1 0
Fetch 367 0.06 0.37 59 1187 0 3806
total 726 0.28 0.56 59 1187 1 3806
Misses in library cache during parse: 11
Misses in library cache during execute: 10
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
db file sequential read 59 0.01 0.32
1 user SQL statements in session.
348 internal SQL statements in session.
349 SQL statements in session.
********************************************************************************below is the estimate and actual results.
| Id | Operation | Name | Starts | E-Rows | A-Rows | A-Time | Buffers | Reads | Writes | OMem | 1Mem | Us
ed-Mem | Used-Tmp|
|* 1 | COUNT STOPKEY | | 13475 | | 13475 |00:01:32.33 | 134K| 11357 | 0 | | |
| |
| 2 | NESTED LOOPS | | 13475 | 2 | 13475 |00:01:31.66 | 134K| 11357 | 0 | | |
| |
| 3 | NESTED LOOPS | | 13475 | 1 | 13475 |00:01:29.22 | 94325 | 11357 | 0 | | |
| |
|* 4 | INDEX RANGE SCAN | | 13475 | 1 | 13475 |00:00:26.63 | 40425 | 4014 | 0 | | |
| |
| 5 | TABLE ACCESS BY INDEX ROWID | | 13475 | 1 | 13475 |00:01:02.46 | 53900 | 7343 | 0 | | |
| |
|* 6 | INDEX RANGE SCAN || 13475 | 1 | 13475 |00:00:16.80 | 40425 | 2056 | 0 | | |
| |
|* 7 | TABLE ACCESS FULL | | 13475 | 2 | 13475 |00:00:02.26 | 40425 | 0 | 0 | | |
| |
| 8 | TABLE ACCESS BY INDEX ROWID || 94399 | 1 | 94399 |00:06:17.09 | 389K| 32207 | 0 | | |
| |
|* 9 | INDEX UNIQUE SCAN | | 94399 | 1 | 94399 |00:02:59.79 | 294K| 15488 | 0 | | |
| |
| 10 | TEMP TABLE TRANSFORMATION | | 1 | | 170K|00:35:11.08 | 1575K| 195K| 6158 | | |
| |
| 11 | LOAD AS SELECT | | 1 | | 1 |00:04:49.06 | 53704 | 28653 | 264 | 525K| 525K| 5
25K (0)| |
| 12 | PARTITION RANGE ALL | | 1 | 55430 | 16097 |00:06:26.06 | 53433 | 28651 | 0 | | |
| |
| 13 | PARTITION HASH ALL | | 54 | 55430 | 16097 |00:09:20.69 | 53433 | 28651 | 0 | | |
| |
|* 14 | TABLE ACCESS BY LOCAL INDEX ROWID | INV | 432 | 55430 | 16097 |00:06:11.42 | 53433 | 28651 | 0 | | |
| |
|* 15 | INDEX SKIP SCAN | | 432 | 125K| 16097 |00:00:39.90 | 4642 | 4508 | 0 | | |
| |
| 16 | TABLE ACCESS BY INDEX ROWID | | 1 | 2 | 170K|00:30:21.66 | 1522K| 166K| 5894 | | |
| |
| 17 | NESTED LOOPS | | 1 | 97 | 276K|34:55:49.92 | 1470K| 150K| 5894 | | |
| |
| 18 | NESTED LOOPS | | 1 | 55 | 105K|00:22:14.57 | 1128K| 134K| 5894 | | |
| |
| 19 | NESTED LOOPS OUTER | | 1 | 52 | 105K|00:16:32.91 | 694K| 105K| 5894 | | |
| |
|* 20 | HASH JOIN | | 1 | 52 | 105K|00:16:19.68 | 402K| 102K| 5894 | 9641K| 2205K| 16
27K (1)| 10240 |
| 21 | VIEW | | 1 | 65234 | 105K|00:16:16.46 | 402K| 101K| 4655 | | |
| |
| 22 | SORT UNIQUE | | 1 | 65234 | 105K|00:16:16.46 | 402K| 101K| 4655 | 8724K| 1161K| 61
8K (48)| 9216 |
| 23 | UNION-ALL | | 1 | | 105K|00:14:59.93 | 402K| 97342 | 252 | | |
| |
| 24 | NESTED LOOPS OUTER | | 1 | 19975 | 105K|00:14:10.24 | 395K| 94655 | 0 | | |
| |
| 25 | NESTED LOOPS | | 1 | 19975 | 105K|00:13:58.47 | 140K| 93616 | 0 | | |
| |
| 26 | VIEW | | 1 | 55430 | 16097 |00:00:00.43 | 270 | 531 | 0 | | |
| |
| 27 | TABLE ACCESS FULL | | 1 | 55430 | 16097 |00:00:00.19 | 270 | 531 | 0 | | |
| |
|* 28 | TABLE ACCESS BY INDEX ROWID| | 16097 | 1 | 105K|00:13:59.70 | 140K| 93085 | 0 | | |
| |
|* 29 | INDEX RANGE SCAN | | 16097 | 10 | 145K|00:00:40.42 | 32685 | 8237 | 0 | | |
| |
| 30 | TABLE ACCESS BY INDEX ROWID | | 105K| 1 | 84716 |00:00:16.78 | 254K| 1039 | 0 | | |
| |
|* 31 | INDEX UNIQUE SCAN | | 105K| 1 | 84716 |00:00:13.05 | 169K| 982 | 0 | | |
| |
| 32 | NESTED LOOPS | | 1 | 45259 | 0 |00:00:17.19 | 7336 | 2687 | 252 | | |
| |
|* 33 | HASH JOIN RIGHT OUTER | | 1 | 45259 | 0 |00:00:17.19 | 7336 | 2687 | 252 | 884K| 884K| 3
09K (0)| |
| 34 | TABLE ACCESS FULL | | 1 | 1673 | 1677 |00:00:00.01 | 24 | 8 | 0 | | |
| |
|* 35 | HASH JOIN | | 1 | 45259 | 0 |00:00:17.13 | 7310 | 2678 | 252 | 3318K| 1235K| 4
47K (1)| 2048 |
|* 36 | TABLE ACCESS FULL | | 1 | 45259 | 49043 |00:00:07.41 | 7043 | 2170 | 0 | | |
| |
| 37 | VIEW | | 1 | 55430 | 16097 |00:00:00.14 | 267 | 256 | 0 | | |
| |
| 38 | TABLE ACCESS FULL || 1 | 55430 | 16097 |00:00:00.12 | 267 | 256 | 0 | | |
| |
| 39 | TABLE ACCESS BY INDEX ROWID | | 0 | 1 | 0 |00:00:00.01 | 0 | 0 | 0 | | |
| |
|* 40 | INDEX UNIQUE SCAN | | 0 | 1 | 0 |00:00:00.01 | 0 | 0 | 0 | | |
| |
| 41 | VIEW | | 1 | 55430 | 16097 |00:00:00.02 | 267 | 0 | 0 | | |
| |
| 42 | TABLE ACCESS FULL | | 1 | 55430 | 16097 |00:00:00.01 | 267 | 0 | 0 | | |
| |
| 43 | TABLE ACCESS BY INDEX ROWID | | 105K| 1 | 93385 |00:00:24.90 | 291K| 2104 | 0 | | |
| |
|* 44 | INDEX UNIQUE SCAN | | 105K| 1 | 93385 |00:00:16.45 | 196K| 1405 | 0 | | |
| |
| 45 | TABLE ACCESS BY INDEX ROWID | | 105K| 1 | 105K|00:05:49.82 | 434K| 29495 | 0 | | |
| |
|* 46 | INDEX UNIQUE SCAN || 105K| 1 | 105K|00:02:54.37 | 328K| 14644 | 0 | | |
| |
|* 47 | INDEX RANGE SCAN | | 105K| 2 | 170K|00:03:01.14 | 342K| 15690 | 0 | | |
| |
Predicate Information (identified by operation id):
1 - filter(1>=ROWNUM)
4 - access("XS"."SITEPK"=:B1)
6 - access("XS"."VENDORPK"="XB"."VENDORPK")
7 - filter(("XB"."BUYERCOMPANYPK"="CC"."PARENTCOMPANYPK" OR "XB"."BUYERCOMPANYPK"="CC"."CHILDCOMPANYPK"))
9 - access("INVOICEPK"=:B1 AND "LINENUM"=:B2)
14 - filter(("IH"."INVOICEORIGIN"='APP' AND "IH"."PO_PK" IS NULL AND "IH"."ISPOSTED"='Y'))
15 - access("IH"."PAYPK"=3914297352 AND "IH"."POSTDATE">=1338508800000 AND "IH"."POSTDATE"<1341014400000)
filter(("IH"."POSTDATE">=1338508800000 AND "IH"."PAYPK"=3914297352 AND "IH"."POSTDATE"<1341014400000))
20 - access("NEWVIEW"."PRIMARYKEY"="TAB"."INVOICEPK")
28 - filter(TO_NUMBER("RAT"."AUDITTYPE")<2)
29 - access("INNERTAB1"."INVOICEPK"="RAT"."INVOICEPK")
filter("RAT"."INVOICEPK" IS NOT NULL)
31 - access("RAT"."USERPK"="UR"."USERPK")
33 - access("RA"."QUEUEPK"="Q"."QUEUEPK")
35 - access("INNERTAB2"."INVOICEPK"="RA"."INVOICEPK")
36 - filter(("RA"."INVOICEPK" IS NOT NULL AND "RA"."RECEIVERPK" IS NOT NULL))
40 - access("RA"."RECEIVERPK"="UR"."USERPK")
44 - access("TAB"."ENTEREDBY"="UR"."USERPK")
46 - access("TAB"."INVOICEPK"="ISUM"."INVOICEPK")
47 - access("IDD"."INVOICEPK"="TAB"."INVOICEPK")
87 rows selected.
Elapsed: 00:00:04.10
SQL>Edited by: 930254 on Aug 7, 2012 9:33 AM -
Reading trace file on the fly.
I came across one cool trick mentioned by Tanel Poder, but it doesn't seem to work for me. Could anyone please help in reading trace file on the fly.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options
SQL> !uname -a
Linux abc 2.6.16.60-0.34-smp #1 SMP Fri Jan 16 14:59:01 UTC 2009 x86_64 x86_64 x86_64 GNU/Linux
SQL> select value ||'/'||(select instance_name from v$instance) ||'_ora_'||
2 (select spid||case when traceid is not null then '_'||traceid else null end
from v$process where addr = (select paddr from v$session
3 4 where sid = (select sid from v$mystat
5 where rownum = 1
6 )
7 )
8 ) || '.trc' tracefile
9 from v$parameter where name = 'user_dump_dest'
10 /
TRACEFILE
/n01/oraadmin1/diag/rdbms/abc/inst1/trace/inst11_ora_28754.trc
SQL> host mknod /n01/oraadmin1/diag/rdbms/abc/inst1/trace/inst11_ora_28754.trc p
SQL> set define off
SQL> host grep "WAIT" /n01/oraadmin1/diag/rdbms/abc/inst1/trace/inst11_ora_28754.trc &
SQL> set define on
SQL> alter session set events '10046 trace name context forever, level 8';
Session altered.
SQL> select * from dual;
D
X
SQL>
SQL> select * from dual;
D
X
{code}
I dont get any WAIT printed into the pipe file created before tracing.
Am i doing something wrong here ?
Edited by: Yasu on Nov 12, 2012 10:14 AMI tried manual method and yes i am able to find WAIT lines in trace file.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options
SQL> select value ||'/'||(select instance_name from v$instance) ||'_ora_'||
(select spid||case when traceid is not null then '_'||traceid else null end
2 3 from v$process where addr = (select paddr from v$session
4 where sid = (select sid from v$mystat
5 where rownum = 1
6 )
7 )
8 ) || '.trc' tracefile
9 from v$parameter where name = 'user_dump_dest'
10 /
TRACEFILE
/n01/oraadmin1/diag/rdbms/proddba/proddba1/trace/proddba1_ora_23021.trc
SQL> alter session set events '10046 trace name context forever, level 8';
Session altered.
SQL> select * from dual;
D
X
SQL> alter session set events '10046 trace name context off';
Session altered.
SQL> !ls -lrt /n01/oraadmin1/diag/rdbms/proddba/proddba1/trace/proddba1_ora_23021.trc
-rw-r----- 1 oracle oinstall 2738 2012-11-12 01:13 /n01/oraadmin1/diag/rdbms/proddba/proddba1/trace/proddba1_ora_23021.trc
SQL> !grep "WAIT" /n01/oraadmin1/diag/rdbms/proddba/proddba1/trace/proddba1_ora_23021.trc
WAIT #1: nam='SQL*Net message to client' ela= 6 driver id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1352704368368424
WAIT #1: nam='SQL*Net message from client' ela= 4057810 driver id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1352704372428142
WAIT #1: nam='SQL*Net message to client' ela= 6 driver id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1352704372428492
WAIT #1: nam='SQL*Net message from client' ela= 195 driver id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1352704372428892
WAIT #1: nam='SQL*Net message to client' ela= 3 driver id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1352704372428939
WAIT #1: nam='SQL*Net message from client' ela= 46319788 driver id=1650815232 #bytes=1 p3=0 obj#=-1 tim=1352704418748740Not sure why using mknod fails in my case.
Edited by: Yasu on Nov 12, 2012 12:48 PM -
Hey everyone,
We've been asked to "stress" and "load" test our application as it is predicted our user base might grow in the near future (company acquisitions/etc)...
Unfortunately, there is concern about the overhead added by APEX. From everything I've read, I do not personally believe APEX adds much to each page view (as compared to our own self-managed data), however I need to PROVE this to our system admins/etc. Simply referencing things on the internet like "APEX doesn't add much overhead" doesn't exactly make the case.
To accomplish my mission, I've done the following:
1) generated a trace file on a test page by appending the following to the end of the URL:
"&p_trace=YES" (without quotes)
2) found the location of trace files using:
select value from v$parameter where name = 'user_dump_dest';
3) found the exact trace file for my apex page view
grep -l "3853406964369" *.trc (where the number in quotes was the session id taken from my apex url)
4) formatted the trace file using tkprof from the linux command line:
tkprof orcl_ora_24115.trc tkprof_output
Now, I'm in the process of examining the file. It is great that it shows everything involved in generating a page! A couple of quick questions though.
A) is it safe to assume that this trace file (found by using my method above in steps 1-4) only contains records associated with my single apex page view? My fear is that just because a file contains my session id, that does not guarantee that other random stuff from other sessions is also in the same file (sorry i'm new to trace files and especially trace files generated by apex).
B) if i view a second page with the trace=YES, will a second file get generated or does it get combined into 1 file? how can i easily tell which file is for which page view?
C) is there an easy way to differentiate what queries would normally be made by oracle (regardless of the UI) versus queries ran by APEX specifically (which would not occur if we were using PHP for a front end)?
Specifically, I see queries (similar to the following) that do not appear to be APEX specific from what I can tell:
-- example 1 --
select i.obj#,i.ts#,i.file#,i.block#,i.intcols,i.type#,i.flags,i.property,
i.pctfree$,i.initrans,i.maxtrans,i.blevel,i.leafcnt,i.distkey,i.lblkkey,
i.dblkkey,i.clufac,i.cols,i.analyzetime,i.samplesize,i.dataobj#,
nvl(i.degree,1),nvl(i.instances,1),i.rowcnt,mod(i.pctthres$,256),
i.indmethod#,i.trunccnt,nvl(c.unicols,0),nvl(c.deferrable#+c.valid#,0),
nvl(i.spare1,i.intcols),i.spare4,i.spare2,i.spare6,decode(i.pctthres$,null,
null,mod(trunc(i.pctthres$/256),256)),ist.cachedblk,ist.cachehit,
ist.logicalread
from
ind$ i, ind_stats$ ist, (select enabled, min(cols) unicols,
min(to_number(bitand(defer,1))) deferrable#,min(to_number(bitand(defer,4)))
valid# from cdef$ where obj#=:1 and enabled > 1 group by enabled) c where
i.obj#=c.enabled(+) and i.obj# = ist.obj#(+) and i.bo#=:1 order by i.obj#
-- example 2 --
select intcol#, toid, version#, intcols, intcol#s, flags, synobj#
from
subcoltype$ where obj#=:1 order by intcol# asc
and I see queries that are definitely APEX related (based on the existence of references to wwv objects):
-- example 3 --
SELECT ID, BRANCH_NAME, BRANCH_ACTION, BRANCH_POINT, BRANCH_TYPE,
BRANCH_CONDITION, BRANCH_CONDITION_TEXT, BRANCH_CONDITION_TYPE,
BRANCH_WHEN_BUTTON_ID, NVL(SAVE_STATE_BEFORE_BRANCH_YN,'N'),
SECURITY_SCHEME
FROM
WWV_FLOW_STEP_BRANCHES WHERE FLOW_ID = :B4 AND FLOW_STEP_ID = :B3 AND
BRANCH_POINT = 'BEFORE_HEADER' AND (REQUIRED_PATCH IS NULL OR
(REQUIRED_PATCH > 0 AND (:B2 IS NULL OR INSTR(:B2 ,
':'||TO_CHAR(REQUIRED_PATCH)||':') = 0) ) OR (REQUIRED_PATCH < 0 AND (:B1
IS NULL OR INSTR(:B1 ,':'||TO_CHAR(0-REQUIRED_PATCH)||':') = 0) ) ) ORDER
BY BRANCH_SEQUENCE, ID
and then of course it's easy for me to identify any queries that are based on our code because I recognize the object names we use.
In the mean-time I'm starting to look into how to interpret trace files (outside of the context of apex).
My biggest concern is that I do not want to "ding" or "tax" APEX for queries that it had nothing to do with and that would be ran by oracle regardless of the UI we use to "view a page".
Thanks!Move older audit files to a different filesystem until you find someone being able to define what files can be deleted.
Regards
Gustavo Restuccia -
Trace file errors interpretation
We are running Oracle 11.2.0.3 on a Windows 2008 R2 Server with an app server on the same. Our app has a search function that has recently started timing out on us. Sometimes intermittently but often now. I've ran a trace in our dev environment, below code, in an attempt to track down the issue but I'm finding very little useful information in relation to the errors I see in the trace file below. My experience in deciphering trace code is nill so I was hoping there would be someone out there who could elaborate a little on how they interpret these errors or provide a resource so I could do so myself. I appreciate any help provided.
*** 2013-04-18 14:27:23.353
*** SESSION ID:(3093.63097) 2013-04-18 14:27:23.353
*** CLIENT ID:() 2013-04-18 14:27:23.353
*** SERVICE NAME:(SYS$USERS) 2013-04-18 14:27:23.353
*** MODULE NAME:(w3pw.exe) 2013-04-18 14:27:23.353
*** ACTION NAME:() 2013-04-18 14:27:23.353
ERROR #532357120:err=1013 tim=1395332943283
=====================
PARSING IN CURSOR #532354152 len=911 dep=2 uid=66 oct=47 lid=66 tim=1395332944838 hv=4132741411 ad='2a92d9d60' sqlid='27dnt1rv59893'
declare
sel number;
arg0 VARCHAR2(1) := null;
begin
:1 := "CTXSYS"."TEXTOPTSTATS".ODCIStatsSelectivity(
sys.ODCIPREDINFO('CTXSYS',
'CTX_CONTAINS',
'TEXTCONTAINS',
32),
sel,
sys.ODCIARGDESCLIST(sys.ODCIARGDESC(3, NULL, NULL, NULL, NULL, NULL, NULL), sys.ODCIARGDESC(5, NULL, NULL, NULL, NULL, NULL, NULL), sys.ODCIARGDESC(2, 'MV$SEARCH', 'CIPS', '"NAME"', NULL, NULL, NULL), sys.ODCIARGDESC(1, NULL, NULL, NULL, NULL, NULL, NULL)),
:3,
NULL
, arg0, :4,
sys.ODCIENV(:5,:6,:7,:8));
if sel IS NULL then
:2 := -1.0;
else
:2 := sel;
end if;
exception
when others then
raise;
end;
END OF STMT
PARSE #532354152:c=0,e=75,p=0,cr=0,cu=0,mis=0,r=0,dep=2,og=1,plh=0,tim=1395332944836
CLOSE #470004032:c=0,e=21,dep=3,type=1,tim=1395332945763
EXEC #532354152:c=0,e=1279,p=0,cr=9,cu=0,mis=0,r=0,dep=2,og=1,plh=0,tim=1395332946378
ERROR #532354152:err=1013 tim=1395332946406
ERROR #532979664:err=1013 tim=1395333014987
ERROR #548803376:err=1013 tim=1395333015201We ran a .NET trace on the Oracle client and got the below. The main issue is: "OpsSqlExecuteReader(): RetCode=-1"
TIME:2013/04/19-10:07:16:569 TID:116c OpsSqlPrepare2(): SQL: Begin SELX_MV$SEARCH.GET(:v0, :v1, :v2); End;
TIME:2013/04/19-10:07:16:569 TID:116c (ENTRY) OpsPrmAllocOpoPrmCtx()
TIME:2013/04/19-10:07:16:569 TID:116c (EXIT) OpsPrmAllocOpoPrmCtx(): RetCode=0 Line=258
TIME:2013/04/19-10:07:16:569 TID:116c (ENTRY) OpsPrmFillOpoPrmCtx()
TIME:2013/04/19-10:07:16:569 TID:116c (ENTRY) OpsConAddRef(): (4fc8dc0)=0
TIME:2013/04/19-10:07:16:569 TID:116c (EXIT) OpsConAddRef(): RefCount=23 RetCode=0 Line=2597 (4fc8dc0)=0
TIME:2013/04/19-10:07:16:569 TID:116c (EXIT) OpsPrmFillOpoPrmCtx(): RetCode=0 Line=540
TIME:2013/04/19-10:07:16:569 TID:116c (EXIT) OpsSqlPrepare2(): RetCode=0 Line=500
TIME:2013/04/19-10:07:16:569 TID:116c (ENTRY) OpsSqlExecuteReader(): (4fc8dc0)=0
TIME:2013/04/19-10:07:16:569 TID:116c (ENTRY) OpsDecGetValCtxFromInteger()
TIME:2013/04/19-10:07:16:569 TID:116c (EXIT) OpsDecGetValCtxFromInteger(): RetCode=0 Line=833
TIME:2013/04/19-10:07:16:569 TID:116c (ENTRY) OpsSqlAllocCtx(): (4fc8dc0)=0
TIME:2013/04/19-10:07:16:569 TID:116c (EXIT) OpsSqlAllocCtx(): RetCode=0 Line=128 (4fc8dc0)=0
TIME:2013/04/19-10:12:16:492 TID: dc (ENTRY) OpsErrAllocCtx(): (4fc8dc0)=0
TIME:2013/04/19-10:12:16:492 TID: dc (EXIT) OpsErrAllocCtx(): RetCode=0 Line=197 (4fc8dc0)=0
TIME:2013/04/19-10:12:16:539 TID:116c (ENTRY) OpsSqlFreeCtx()
TIME:2013/04/19-10:12:16:539 TID:116c (EXIT) OpsSqlFreeCtx(): RetCode=0 Line=153
TIME:2013/04/19-10:12:16:539 TID:116c (ENTRY) OpsSqlFreeCtx()
TIME:2013/04/19-10:12:16:539 TID:116c (EXIT) OpsSqlFreeCtx(): RetCode=0 Line=153
TIME:2013/04/19-10:12:16:539 TID:116c (EXIT) OpsSqlExecuteReader(): RetCode=-1 Line=612
TIME:2013/04/19-10:12:16:539 TID:116c (ENTRY) OpsTraceGetLastErrorCode()
TIME:2013/04/19-10:12:16:539 TID:116c (EXIT) OpsTraceGetLastErrorCode(): RetCode=0 Line=1425
TIME:2013/04/19-10:12:16:555 TID: dc (ENTRY) OpsTraceCreateMiniDump()
TIME:2013/04/19-10:12:16:555 TID: dc (EXIT) OpsTraceCreateMiniDump(): None created: TraceLevel=0 Line=1342
TIME:2013/04/19-10:12:16:586 TID:116c (EXCPT) Lvl0: (Type=System.Threading.ThreadAbortException) (Msg=Thread was being aborted.) (Win32Err=0) (Code=e0434f4d) (Stack= at Oracle.DataAccess.Client.OpsSql.ExecuteReader(IntPtr opsConCtx, IntPtr& opsErrCtx, IntPtr& opsSqlCtx, IntPtr& opsDacCtx, IntPtr& opsReaderErrCtx, IntPtr opsSubscrCtx, Int32& isSubscrRegistered, Int32 bchgNTFNExcludeRowidInfo, Int32 bQueryBasedNTFNRegistration, Int64& query_id, OpoSqlValCtx*& pOpoSqlValCtx, String pCommandText, OpoDacValCtx*& pOpoDacValCtx, IntPtr[] pOpoPrmValCtx, String[] ppOpoPrmRefCtx, OpoMetValCtx*& pOpoMetValCtx, Int32 NoOfParams)
at Oracle.DataAccess.Client.OracleCommand.ExecuteReader(Boolean requery, Boolean fillRequest, CommandBehavior behavior))Edited by: slas on Apr 19, 2013 12:19 PM -
Need help deleting trace files
Hi,
I am new to Oracle RAC and I need to get rid of trace files since they are growing too big. I have one that is 22Gigs and I only have 60 Gigs available right now on that drive. I want to know if I can delete the file manually using the rm command.
My trace files are in: /u01/app/oracle/diag/rdbms/.../.../trace
The file I am concerned is called: "linux1_pz99_13299.trc" and "linux1_pz99_13299.trm"
I am using Oracle 11.1.0.6.0 on Oracle Unbreakable Linux.
Thanks for any help that can be provided.Is that really going to work?
It is my understanding (supported by some inconclusive observations and experiments) that once a trace file grows beyond about 8 kilobytes Oracle will hang onto it in a death grip. You may delete it but Oracle will still have the file handle open and be writing to it.
If the database is running on a Windows platform then an equivalent script will not even give the illusion of deleting the file.
It used to be the case that switching trace file output to a different directory would cause Oracle to release the active trace files but now the trace directory is part of the ADR heirarchy so switching is a more global and more intrusive operation and could interfere with other diagnostics.
You may have to rely on ADRCI's "purge" command unless there is a PL/SQL equivalent.
I shall be very interested to see what others have to say. -
Hello,
I have from some a few doubts about the trace files, researched in various locations, but still could not solve my doubts. I hope you can help me.
First doubt:
call count cpu elapsed disk query current rows
Parse 352 0.03 0.04 0 0 0 0
Execute 434 0.05 0.05 0 0 0 0
Fetch 2359 6.97 104.50 130 460857 0 3665
total 3145 7.05 104.60 130 460857 0 3665For I know the average time of each call to this query, which account should I do?
104/434 = 0.24
104/3145 = 0.03
Another? Why?
Second doubt:
call count cpu elapsed disk query current rows
Parse 45 0.00 0.00 0 0 0 0
Execute 19232 0.79 0.92 0 0 0 0
Fetch 19232 0.90 0.90 0 0 0 19232
total 38509 1.70 1.82 0 0 0 19232How do I know how many times this query was executed?
I thought that number 19,232 too high, and I have looked at the trace file and select and only appears 41 times.
Thanks,
Everson
Edited by: Everson Piza on Jan 30, 2013 4:28 PMEverson Piza wrote:
Hello,
I have from some a few doubts about the trace files, researched in various locations, but still could not solve my doubts. I hope you can help me.
First doubt:
call count cpu elapsed disk query current rows
Parse 352 0.03 0.04 0 0 0 0
Execute 434 0.05 0.05 0 0 0 0
Fetch 2359 6.97 104.50 130 460857 0 3665
total 3145 7.05 104.60 130 460857 0 3665For I know the average time of each call to this query, which account should I do?
104/434 = 0.24
104/3145 = 0.03What are you trying to determine by computing such an average? The times listed are a guage to indicate how much time was spent for each operation. Apart from that the computation you listed did not look right. You dived 104 by 434 but the elapsed time for Execute was 0.05. Why did you divide the total elapsed time (assuming you did not use the elapsed fetch time) by only the Execute time when it includes the Parse and Fetch times?
The statistics listed indicate how much time was spent on each operation. Most of the time was spent in the Fetch opeation.
>
Second doubt:
call count cpu elapsed disk query current rows
Parse 45 0.00 0.00 0 0 0 0
Execute 19232 0.79 0.92 0 0 0 0
Fetch 19232 0.90 0.90 0 0 0 19232
total 38509 1.70 1.82 0 0 0 19232How do I know how many times this query was executed?
I thought that number 19,232 too high, and I have looked at the trace file and select and only appears 41 times.Although there might be 41 Execute operations in the raw trace file the added-up sum of the counts should be 19,232. if not then there is a problem. If you have My Oracle Support account you can log in and find a document explaining raw trace files. This information might be available on-line but is probably proprietary by oracle.
Edited by: riedelme on Jan 30, 2013 10:55 AM -
How to read/understand an user Trace Files
Dear All,
I am new to this forum, could any help me how to read/understand User Trace File
Thanks,
Kannan Pasupathi
Edited by: 835519 on Feb 10, 2011 2:40 AMHi,
http://hoopercharles.wordpress.com/2009/12/01/10046-extended-sql-trace-interpretation/
http://hoopercharles.wordpress.com/2010/01/26/10046-extended-sql-trace-interpretation-2/
http://hoopercharles.wordpress.com/2010/09/06/10046-extended-sql-trace-interpretation-3/
HTH
Anand -
Hi,
I have written the stored procedure for starting sql trace on a given session for say n number of seconds.
create or replace procedure start_trace
v_sid in number,
v_serial# in number,
seconds in number)
IS
v_user varchar2 (32);
duration number;
dump_dest varchar2 (200);
db_name varchar2 (32);
no_session_found exception;
stmt varchar2(100);
stmt1 varchar2(100);
BEGIN
begin
select username into v_user
from v$session
where sid= v_sid and
serial# = v_serial#;
exception
when NO_DATA_FOUND then
raise no_session_found;
end;
dbms_output.put_line('Tracing Started for User: '|| v_user);
dbms_output.put_line('Tracing Start Time: '|| TO_CHAR(SYSDATE, 'MM-DD-YYYY HH24:MI:SS'));
dbms_system.set_sql_trace_in_session(v_sid,v_serial#,true);
if seconds is null then
duration := 60;
else
duration := seconds;
end if;
dbms_lock.sleep(duration);
dbms_system.set_sql_trace_in_session(v_sid,v_serial#,false);
dbms_output.put_line ('Tracing Stop Time: '|| TO_CHAR(SYSDATE, 'MM-DD-YYYY HH24:MI:SS'));
select value into dump_dest
from v$parameter
where name = 'user_dump_dest';
dbms_output.put_line('Trace Directory: ' || dump_dest);
exception
when no_session_found then
dbms_output.put_line('No session found for sid and serial# specified');
END start_trace;
The above procedure compiles successfully and when I call it from sql prompt it gives me the message that the pl/sql procedure was completed successfully and all put_line statements are displayed.
Real problem comes when I check udump for the trace file. I can not find it there. It seems all the statements in the procedure are executed successfully except dbms_system.set_sql_trace_in_session(v_sid,v_serial#,true) and dbms_system.set_sql_trace_in_session(v_sid,v_serial#,false) for some strange reasons.
Any help will be appreciated.
Thanks.Thanks for the reply.
I do not get any error message. The following is the output:
SQL> exec start_trace(118,6243,30);
Tracing Started for User: SVCWRK
Tracing Start Time: 09-26-2011 16:28:29
Tracing Stop Time: 09-26-2011 16:28:59
Trace Directory: /orasoft/app/oracle/admin/testsvcb/udump
PL/SQL procedure successfully completed.
But the trace file is not generated.
I am using Oracle 10.2.0.4.0.
Will try using DBMS_MONITOR.
Thanks again. -
Create sql trace files on client machine
Hi
oracle creates sql trace files on server side, what are possible and best ways of sharing those files with end users? is it possible to create them on client side instead?Dbb wrote:
Hi
Hi
oracle creates sql trace files on server side,
Yes
what are possible and best ways of sharing those files with end users?
Using shared directory. Use the parameters dump to point to it
is it possible to create them on client side instead?
No
. :-) any help with my english is wellcome :-) .does this mean sharing user_dump destination at linux level and then mounting it from client machines ( win xp )?is there any doc on this? -
Name of trace file from trace enabled concurrent program
Hi all,
I am looking for a sql script or method to find the name of a trace file in udump for trace enabled concurrent programs. I know the trace files show 11i logon (user_name from fnd_user) in the name of the trace file but I am looking for a sql that would give the exact name of the raw trace file with request id as input.
I have 11.5.10.2.
Any help?
Thanks,Please see these docs.
11i-How to find the Trace file generated for a concurrent program [ID 270446.1]
How to find the Trace file generated for a concurrent program? [ID 967966.1]
FAQ: Common Tracing Techniques within the Oracle Applications 11i/R12 [ID 296559.1]
Thanks,
Hussein -
Creating trace file in oracle 10g forms
hii there,
I have developed an application in oracle 10g. but it's too slow . Now i have to trace forms . How can trace oracle forms.
please send it in details as early as possible. I don't know about this trace file generation.
-----SachinHi,
To run SQL trace for a form :
a. Get to the point in the form where you want to turn trace on.
For example, if the problem occurs on the commit, wait until you are
ready to commit, THEN turn trace on.
b. Turn tracing on. In GUI versions: Help - Tools - Trace, enable tracing.
c. Execute the steps you want to trace.
d. Turn tracing off. In GUI versions: Help - Tools - Trace, disable tracing.
The trace file will be written to the subdirectory specified in the
'user_dump_dest' parameter in the INIT.ORA file. -
Following is getting created in D:\Oracle\Ora81\DATABASE folder once or twice a month. I do not see any error entries in db1alrt.log. Please help to find out the problem.
Thanks,
Anil
Dump file .\ORA05244.TRC
Sun May 01 21:30:07 2005
ORACLE V8.1.5.0.0 - Production vsnsta=0
vsnsql=d vsnxtr=3
Windows NT V5.2, OS V14.206, CPU type 586
Oracle8i Release 8.1.5.0.0 - Production
With the Java option
PL/SQL Release 8.1.5.0.0 - Production
Windows NT V5.2, OS V14.206, CPU type 586
Instance name: db1
Redo thread mounted by this instance: 0 <none>
Oracle process number: 0
5244
*** 2005.05.01.21.30.07.127
ksedmp: internal or fatal error
ORA-00600: internal error code, arguments: [508], [163], [0], [1413697536], [1], [0], [], []
Current SQL information unavailable - no session.
----- Call Stack Trace -----
calling call entry argument values in hex
location type point (? means dubious value)
ksedmp+a5 CALLrel ksedst+0
75BE3F8
ksfdmp+e CALLrel ksedmp+0 3
_kgeriv+95 CALLreg 00000000
ED16A08
3
kgeasi+67 CALLrel kgeriv+0
1E440
0 1FC
5
675BE570
kslwte+11a CALLrel kgeasi+0
ED16A08
0 1FC
2 5 0
A3 0
0 0
54435000
0 1 0
0
opikndf2+537 CALLrel kslwte+0 A3
54435000
1 0
_opitsk+3da CALLreg 00000000
ED193E4
2
675BF544
1 0
opiino+50c CALLrel opitsk+0 0
_opiodr+4ce CALLreg 00000000 3C 4
675BFBF8
opidrv+380 CALLrel opiodr+0 3C 4
675BFBF8
0
sou2o+19 CALLrel opidrv+0
opimai+110 CALLrel sou2o+0
OracleThreadStart@4+48c CALLrel opimai+0 2
675BFE78
77E4A98D CALLreg 00000000
----- Argument/Register Address Dump -----
Argument/Register addr=675be3f8. Dump of memory from 0x675BE3B8 to 0x675BE4F8
675BE3A0 00000000 00000003
675BE3C0 E8D60800 6552211C 00000033 00000000 FFFFFFFD 00000048 00000000 00000000
675BE3E0 00000000 00000000 0000001D 2ED16888 675BE408 00418404 00C936B4 00C936B4
675BE400 00C936D4 00C936B4 00C936B4 00C936B4 00C936BC 00C936B4 00C936BC 00C936B4
675BE420 00C936B4 00C936B4 00C936B4 00C936BC 675BE4E0 004191E0 675BE444 0000001C
675BE440 00000000 2A2A2A0A 30303220 35302E35 2E31302E 332E3132 37302E30 32332D25
675BE460 2D252073 25207338 7332332D 675F0020 00000000 00000001 000007D5 35373620
675BE480 37454642 25200038 7332332D 342D2520 00000A73 00000003 65522178 00000033
675BE4A0 00000000 2ED16888 01218A97 00000000 00000000 00000000 675BFFEC 00000000
675BE4C0 675BFE78 00000000 00000001 00000001 00000000 675BDDD0 00000009 675BE504
*** Trace file full ***you have what one session wants the other session has what you want; neither will give it up and so Oracle detects this and kicks one out. If you trace your SQL and COMMIT logic you will find the problem
-
Ubormal trace file generation in 11.1.0.7
oracle version
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
PL/SQL Release 11.1.0.7.0 - Production
CORE 11.1.0.7.0 Production
TNS for 64-bit Windows: Version 11.1.0.7.0 - Production
NLSRTL Version 11.1.0.7.0 - Production
OS
Windows 2008 EE R1 SP2
Problem
My trace files generated every 30 second and its drive me crazy i have to delete to maintain space of the server
i check the alert logfile and it does not show anything suspecious here are a couple of lines from the alert.log file
Sat Jan 22 00:16:52 2011
Thread 1 advanced to log sequence 117 (LGWR switch)
Current log# 1 seq# 117 mem# 0: E:\DATA\ORACLE\PMDB\REDO01A.LOG
Current log# 1 seq# 117 mem# 1: E:\DATA\ORACLE\PMDB\REDO01B.LOG
Sat Jan 22 02:00:00 2011
Clearing Resource Manager plan via parameter
Sat Jan 22 06:00:00 2011
Setting Resource Manager plan SCHEDULER[0x2C49]:DEFAULT_MAINTENANCE_PLAN via scheduler window
Setting Resource Manager plan DEFAULT_MAINTENANCE_PLAN via parameter
Sat Jan 22 06:00:03 2011
Begin automatic SQL Tuning Advisor run for special tuning task "SYS_AUTO_SQL_TUNING_TASK"
End automatic SQL Tuning Advisor run for special tuning task "SYS_AUTO_SQL_TUNING_TASK"
Sat Jan 22 06:00:36 2011
Thread 1 advanced to log sequence 118 (LGWR switch)
Current log# 2 seq# 118 mem# 0: E:\DATA\ORACLE\name\REDO02A.LOG
Current log# 2 seq# 118 mem# 1: E:\DATA\ORACLE\nameREDO02B.LOG
Sat Jan 22 11:09:15 2011
Thread 1 advanced to log sequence 119 (LGWR switch)
Current log# 1 seq# 119 mem# 0: E:\DATA\ORACLE\name\REDO01A.LOG
Current log# 1 seq# 119 mem# 1: E:\DATA\ORACLE/name\REDO01B.LOG
Sat Jan 22 11:37:19 2011
Thread 1 advanced to log sequence 120 (LGWR switch)
Current log# 2 seq# 120 mem# 0: E:\DATA\ORACLE\nam\REDO02A.LOG
Current log# 2 seq# 120 mem# 1: E:\DATA\ORACLE\name\REDO02B.LOG
And i have cheched the trace files and here are a couple of lines
*** 2011-01-19 15:23:54.265
*** SESSION ID:(43.21827) 2011-01-19 15:23:54.265
*** CLIENT ID:() 2011-01-19 15:23:54.265
*** SERVICE NAME:(name) 2011-01-19 15:23:54.265
*** MODULE NAME:(OMS) 2011-01-19 15:23:54.265
*** ACTION NAME:() 2011-01-19 15:23:54.265
XS Users and Roles -- OCI Info
kzxupnamread error -- 942: ORA-00942: table or view does not exist
XS Users and Roles -- OCI Info
kzxupnamread error -- 942: ORA-00942: table or view does not exist
Trace file e:\app\oracle\diag\rdbms\pmdb\pmdb\trace\pmdb_ora_7688.trc
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Windows NT Version V6.0 Service Pack 2
CPU : 16 - type 8664, 8 Physical Cores
Process Affinity : 0x0000000000000000
Memory (Avail/Total): Ph:8575M/16372M, Ph+PgF:24932M/32827M
Instance name: name
Redo thread mounted by this instance: 1
Oracle process number: 18
Windows thread id: 7688, image: ORACLE.EXE (SHAD)
Would you please help me in identifying a solution to this problemThanks everybody ,
I have communciated to Oracle Support below is their reply :-
<< Based on the Developer comment in the bug, "This belongs to EXTENDED SECURITY and don't have conditions to run, it is addressed in patch 7019661 and solved in 11.2", >>
i have to test the patch in the test environment and than i will do it in Live
Thank you again
Maybe you are looking for
-
How do you transfer Adobe Acrobat XI Pro Student version from old computer to new computer?
i just got a new computer and got my Adobe Acrobat XI Pro Student and Teacher Edition installed from my old computer; however on my new computer, it's only showing up as Adobe Reader and not the Acrobat XI Pro version. I've only had it for less than
-
How do i de-authorize an itunes account on a dead computer
how do i de-authorize an itunes account on a dead computer
-
How do i update the preview version 4.2 on my macbook pro osx which i bought 2.5 years ago. I need the newer preview version to use a scanner. i have updated all available software updates but preview was'nt one on offer
-
How do I allow firefox to let me install a new program ?
firefox prevented a site from allowing it to install software, how do I allow
-
It's a grey-ed lower case p that moves with the cursor to the end of paragraphs or stand alone sentences, ie doesn't move word by word or letter by letter. If I click it I get a box the at the top has OP RTV US and at the bottom of the box the word P