Bind value truncated in trace file
Hi,
I ran a level 12 trace, but it looks like the display of the bind variable values in the trace file is limited to about 255 characters. Is there any setting I can change to get it to dump the entire value?
Thanks!
I can't find any related information as to why this limitation is there but I guess it is only to keep the trace file readable (with parameter "avl" indicating the actual value length in the trace file).
Similar Messages
-
In trace file and output file showing bind variable instead of value
Hi,
database 9i
optimizer = choose(for cost based)
In my trace file and output file showing bind variable instead of value.
in my trace file 20 queries.
I alse set this parameter in session level.
alter session set events '10046 trace name context forever, level 4';
but still showing traceoutput file bind variable.
Pls help its very urgentCan you post the query for which the bind variable values are not being shown and the trace output for the same?
Probably it is listed down somewhere when you actually executed the query among the others. Try completely analyzing your trace file.. -
I need to capture bind values in SQL Trace. I am running Oracle 9.2.0.8. I will be running my queries from an application, not SQL Plus. I can use a after log on trigger to turn on trace. Has anyone done this with success? Are there any other ways to do this at the server level?
Thank you for your input
DavidHello David,
it is such easy ... you wouldn't believe it.
Have a look at the pl/sql procedure "dbms_system.set_ev", with this one you can do this on session level: http://www.oracleadvice.com/Tips/dbms_system.htm#SET_EV
There are also some other possibilities... but this should hit your question..
To turn on:
SQL> exec dbms_system.set_ev(<SID>, <SERIAL>, 10046, 12, '');
To turn off:
SQL> exec dbms_system.set_sql_trace_in_session(<SID>, <SERIAL>, FALSE);
Regards
Stefan -
Agent10g: Size of Management Agent Log and Trace Files get oversize ...
Hi,
I have the following problem:
I had installed the EM Agent10g (v10.2.0.4) on each of all my Oracle servers. I've done a long time ago (a few months or a few years depending on wich server it was installed). Recently, I've got PERL error because the "trace" file of the Agent was too big (the emagent.trc was more than 1 Gb) !!!
I don't know why. I checked on a particular server on the AGENT_HOME\sysman\config (Windows) for the emd.properties file.
The following properties are specified in the emd.properties file:
LogFileMaxSize=4096
LogFileMaxRolls=4
TrcFileMaxSize=4096
TrcFileMaxRolls=4
This file had never been modified (those properties correspond to the default value). It's the same situation for all Agent10g (setup) on all of the Oracle Server.
Any idea ?
NOTE: The Agent is stopped and started weekly ...
Thank's
YvesWhy don't you truncate the trace file weekly. You can also delete the file. The file will be created automatically whenever there is a trace.
-
Time drift detected. Please check VKTM trace file for more details
Running 11.2.0.2 on windows 64 bit virtualized..
VKTM, oracles virtual keeper of time is throwing a lot of warnings in the alert log. According to my research this is not a great concern (if someone could explain why that would be great as well) but you should be able to supress the trace file if you are at 11.2.0.2 by setting event = "10795 trace name context forever, level 2" in the the paramater file. I am using a spfile and did not use "alter system", i cretaed pfile and edited it , opened with it and created a new spfile then opened with that. I am however still receiving the trace files and the messages in the alert log, I am getting approximately 10 a day now so the alert log is filling rather quickly. Has anyone else encountered this or have any advice on how to solve this? Thanksuser12243721 wrote:
Running 11.2.0.2 on windows 64 bit virtualized..
VKTM, oracles virtual keeper of time is throwing a lot of warnings in the alert log. According to my research this is not a great concern (if someone could explain why that would be great as well) but you should be able to supress the trace file if you are at 11.2.0.2 by setting event = "10795 trace name context forever, level 2" in the the paramater file. I am using a spfile and did not use "alter system", i cretaed pfile and edited it , opened with it and created a new spfile then opened with that. I am however still receiving the trace files and the messages in the alert log, I am getting approximately 10 a day now so the alert log is filling rather quickly. Has anyone else encountered this or have any advice on how to solve this? ThanksI get this as well on Windows 64-bit with a multi-CPU machine, with the VM set up with 2 virtual CPUs.
Since it's not a production machine it hasn't bothered me, but there are three other side effects
a) the "tim=" values in 10046 trace files look as if they have two parallel clocks running out of synch with each other - with the reported values jumping from one clock to the other every few milliseconds.
b) sometimes the database refuses to restart with "vktm didn't start in time" error messages
c) a couple of times a call to dbms_lock.sleep(0.01) has slept for a very long time - possibly because the timer started on the faster of the two clocks, and the system then jumped to the slower.
I never trust the machine for performance tests, so the timing anomalies aren't a big issue for me, so I haven't followed it up; but I'd guess it's a vmware issue with the way it has virtualised the multiple CPUs.
Regards
Jonathan Lewis
http://jonathanlewis.wordpress.com
Author: <b><em>Oracle Core</em></b> -
Trace files showing bind variables value=""
10g on solaris
Hi All,
We have an issue with an informatica workflow issuing an update statment to Oracle in trems of performace.
I switched the tracing on using DBMS_SUPPORT with binds set to TRUE. It has captured the trace files accordingly against a controlled set of data. Twot trace files were produced.
The first trace files shows the SELECT statment being issues that identifies the records that will be updated.
The 2nd trace file shows the actual UPDATE statment being issued as a PL/SQL loop to do the update.
There were 20 records that the users have rigged to updated and the update statment shows 20 cases where updates took place. All updates took place succesfully after checking the post results. However my issue is why the trace files are showing the bind vaules as being set to ""?..any ideas appreciated!
an extract of the trace file...
PARSING IN CURSOR #1 len=123 dep=0 uid=1482 oct=6 lid=1482 tim=994827916280 hv=3649357857 ad='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
PARSE #1:c=10000,e=980,p=0,cr=0,cu=0,mis=1,r=0,dep=0,og=1,tim=994827916264
=====================
PARSING IN CURSOR #5 len=227 dep=1 uid=0 oct=3 lid=0 tim=994827919231 hv=2190775527 ad='8e622670'
select u.name,o.name, t.update$, t.insert$, t.delete$, t.enabled from obj$ o,user$ u,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
PARSE #5:c=0,e=1310,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=1,tim=994827919223
BINDS #5:
bind 0: dty=2 mxl=22(22) mal=00 scl=00 pre=00 oacflg=00 oacfl2=0001 size=24 offset=0
bfp=ffffffff7c058d98 bln=22 avl=04 flg=05
value=425212
EXEC #5:c=10000,e=9476,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=4,tim=994827928883
FETCH #5:c=0,e=104,p=0,cr=1,cu=0,mis=0,r=0,dep=1,og=4,tim=994827929051
STAT #5 id=1 cnt=0 pid=0 pos=1 obj=0 op='SORT ORDER BY (cr=1 pr=0 pw=0 time=172 us)'
STAT #5 id=2 cnt=0 pid=1 pos=1 obj=0 op='NESTED LOOPS (cr=1 pr=0 pw=0 time=110 us)'
STAT #5 id=3 cnt=0 pid=2 pos=1 obj=0 op='NESTED LOOPS (cr=1 pr=0 pw=0 time=105 us)'
STAT #5 id=4 cnt=0 pid=3 pos=1 obj=79 op='TABLE ACCESS BY INDEX ROWID TRIGGER$ (cr=1 pr=0 pw=0 time=103 us)'
STAT #5 id=5 cnt=0 pid=4 pos=1 obj=123 op='INDEX RANGE SCAN I_TRIGGER1 (cr=1 pr=0 pw=0 time=78 us)'
STAT #5 id=6 cnt=0 pid=3 pos=2 obj=18 op='TABLE ACCESS BY INDEX ROWID OBJ$ (cr=0 pr=0 pw=0 time=0 us)'
STAT #5 id=7 cnt=0 pid=6 pos=1 obj=36 op='INDEX UNIQUE SCAN I_OBJ1 (cr=0 pr=0 pw=0 time=0 us)'
STAT #5 id=8 cnt=0 pid=2 pos=2 obj=22 op='TABLE ACCESS CLUSTER USER$ (cr=0 pr=0 pw=0 time=0 us)'
STAT #5 id=9 cnt=0 pid=8 pos=1 obj=11 op='INDEX UNIQUE SCAN I_USER# (cr=0 pr=0 pw=0 time=0 us)'
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=""
EXEC #1:c=8390000,e=8740989,p=55593,cr=55610,cu=3,mis=1,r=1,dep=0,og=1,tim=994836657483
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=""
EXEC #1:c=7980000,e=7962369,p=55591,cr=55608,cu=1,mis=0,r=1,dep=0,og=1,tim=994844621479
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=""
ect ect ect...
Regards
Satnamspliffer wrote:
Having investigated on the comment of NVARCHAR2 not allowing bind variables to be displayed in the trace file... I checked the datatype of the table/column being used in the index and its is defined as VARCHAR2(15)... ? so Im still not sure as to why we are still getting this.. could it be to do with the clinet application and the way in which it passes the bind vlaues to the oracle update statment?
any ideas appreciated?
regards
SatnamHere is a very brief demonstration.
The script:
VARIABLE V1 VARCHAR2
VARIABLE V2 NVARCHAR2
EXEC :V1:='A'
EXEC :V2:='A'
ALTER SESSION SET TRACEFILE_IDENTIFIER = 'FIND_ME';
ALTER SESSION SET EVENTS '10046 TRACE NAME CONTEXT FOREVER, LEVEL 12';
SELECT
FROM
(SELECT
ROWNUM COUNTER,
CHR(MOD(ROWNUM-1,26)+65) CHARACTER
FROM
DUAL
CONNECT BY
LEVEL<=100)
WHERE
CHARACTER= :V1;
SELECT
FROM
(SELECT
ROWNUM COUNTER,
CHR(MOD(ROWNUM-1,26)+65) CHARACTER
FROM
DUAL
CONNECT BY
LEVEL<=100)
WHERE
CHARACTER= :V2;
SELECT SYSDATE FROM DUAL;
ALTER SESSION SET EVENTS '10046 TRACE NAME CONTEXT OFF';In the script we have two bind variables defined, the first a VARCHAR2 and the second a NVARCHAR2. The output of the script looks like this in both cases:
COUNTER C
1 A
27 A
53 A
79 AThe 10046 trace file looks like this:
PARSING IN CURSOR #3 len=152 dep=0 uid=31 oct=3 lid=31 tim=2874162497 hv=2898495116 ad='a5259590'
SELECT
FROM
(SELECT
ROWNUM COUNTER,
CHR(MOD(ROWNUM-1,26)+65) CHARACTER
FROM
DUAL
CONNECT BY
LEVEL<=100)
WHERE
CHARACTER= :V1
END OF STMT
PARSE #3:c=0,e=128,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,tim=2874162493
BINDS #3:
kkscoacd
Bind#0
oacdty=01 mxl=32(01) mxlc=00 mal=00 scl=00 pre=00
oacflg=03 fl2=1000000 frm=01 csi=178 siz=32 off=0
kxsbbbfp=0f176c88 bln=32 avl=01 flg=05
value="A"
EXEC #3:c=0,e=498,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,tim=2874163947
WAIT #3: nam='SQL*Net message to client' ela= 3 driver id=1413697536 #bytes=1 p3=0 obj#=10192 tim=2874164058
FETCH #3:c=0,e=68,p=0,cr=0,cu=0,mis=0,r=1,dep=0,og=1,tim=2874164215
WAIT #3: nam='SQL*Net message from client' ela= 299 driver id=1413697536 #bytes=1 p3=0 obj#=10192 tim=2874164657
WAIT #3: nam='SQL*Net message to client' ela= 2 driver id=1413697536 #bytes=1 p3=0 obj#=10192 tim=2874164903
FETCH #3:c=15625,e=359,p=0,cr=0,cu=0,mis=0,r=3,dep=0,og=1,tim=2874165155
WAIT #3: nam='SQL*Net message from client' ela= 1162 driver id=1413697536 #bytes=1 p3=0 obj#=10192 tim=2874166774
STAT #3 id=1 cnt=4 pid=0 pos=1 obj=0 op='VIEW (cr=0 pr=0 pw=0 time=76 us)'
STAT #3 id=2 cnt=100 pid=1 pos=1 obj=0 op='COUNT (cr=0 pr=0 pw=0 time=50 us)'
STAT #3 id=3 cnt=100 pid=2 pos=1 obj=0 op='CONNECT BY WITHOUT FILTERING (cr=0 pr=0 pw=0 time=47 us)'
STAT #3 id=4 cnt=1 pid=3 pos=1 obj=0 op='FAST DUAL (cr=0 pr=0 pw=0 time=4 us)'
WAIT #0: nam='SQL*Net message to client' ela= 3 driver id=1413697536 #bytes=1 p3=0 obj#=10192 tim=2874167438
WAIT #0: nam='SQL*Net message from client' ela= 3939 driver id=1413697536 #bytes=1 p3=0 obj#=10192 tim=2874171452
=====================
PARSING IN CURSOR #2 len=152 dep=0 uid=31 oct=3 lid=31 tim=2874171761 hv=2346424803 ad='a597e190'
SELECT
FROM
(SELECT
ROWNUM COUNTER,
CHR(MOD(ROWNUM-1,26)+65) CHARACTER
FROM
DUAL
CONNECT BY
LEVEL<=100)
WHERE
CHARACTER= :V2
END OF STMT
PARSE #2:c=0,e=155,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,tim=2874171757
BINDS #2:
kkscoacd
Bind#0
oacdty=01 mxl=32(02) mxlc=01 mal=00 scl=00 pre=00
oacflg=03 fl2=1000010 frm=02 csi=2000 siz=32 off=0
kxsbbbfp=0f176c88 bln=32 avl=02 flg=05
value=""
EXEC #2:c=0,e=489,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,tim=2874173190
WAIT #2: nam='SQL*Net message to client' ela= 3 driver id=1413697536 #bytes=1 p3=0 obj#=10192 tim=2874173300
FETCH #2:c=0,e=68,p=0,cr=0,cu=0,mis=0,r=1,dep=0,og=1,tim=2874173453
WAIT #2: nam='SQL*Net message from client' ela= 326 driver id=1413697536 #bytes=1 p3=0 obj#=10192 tim=2874173906
WAIT #2: nam='SQL*Net message to client' ela= 2 driver id=1413697536 #bytes=1 p3=0 obj#=10192 tim=2874174137
FETCH #2:c=0,e=334,p=0,cr=0,cu=0,mis=0,r=3,dep=0,og=1,tim=2874174398
WAIT #2: nam='SQL*Net message from client' ela= 1052 driver id=1413697536 #bytes=1 p3=0 obj#=10192 tim=2874175570
STAT #2 id=1 cnt=4 pid=0 pos=1 obj=0 op='VIEW (cr=0 pr=0 pw=0 time=76 us)'
STAT #2 id=2 cnt=100 pid=1 pos=1 obj=0 op='COUNT (cr=0 pr=0 pw=0 time=46 us)'
STAT #2 id=3 cnt=100 pid=2 pos=1 obj=0 op='CONNECT BY WITHOUT FILTERING (cr=0 pr=0 pw=0 time=43 us)'
STAT #2 id=4 cnt=1 pid=3 pos=1 obj=0 op='FAST DUAL (cr=0 pr=0 pw=0 time=4 us)'
WAIT #0: nam='SQL*Net message to client' ela= 1 driver id=1413697536 #bytes=1 p3=0 obj#=10192 tim=2874176119
WAIT #0: nam='SQL*Net message from client' ela= 998 driver id=1413697536 #bytes=1 p3=0 obj#=10192 tim=2874177197
...Notice that the value for the bind variable defined as VARCHAR2 printed in the trace file, while the value for the bind variable defined as NVARCHAR2 did not print in the trace file.
If I had set the STATISTICS_LEVEL to ALL (or used a GATHER_PLAN_STATISTICS hint) I could retrieve the actual execution plan for the above SQL statements like this (if not, replace ALLSTATS LAST with TYPICAL):
SET PAGESIZE 1000
SET LINESIZE 160
SELECT /*+ LEADING(S) */
T.PLAN_TABLE_OUTPUT
FROM
(SELECT
SQL_ID,
CHILD_NUMBER
FROM
V$SQL
WHERE
SQL_TEXT LIKE '% CHARACTER= :V_') S,
TABLE(DBMS_XPLAN.DISPLAY_CURSOR(S.SQL_ID,S.CHILD_NUMBER,'ALLSTATS LAST +COST')) T;The output of the above looks like this:
SQL_ID 33wwr3kqc71nc, child number 0
SELECT * FROM (SELECT ROWNUM COUNTER, CHR(MOD(ROWNUM-1,26)+65) CHARACTER FROM
DUAL CONNECT BY LEVEL<=100) WHERE CHARACTER= :V1
Plan hash value: 761049541
| Id | Operation | Name | Starts | E-Rows | Cost (%CPU)| A-Rows | A-Time |
|* 1 | VIEW | | 1 | 1 | 2 (0)| 4 |00:00:00.01 |
| 2 | COUNT | | 1 | | | 100 |00:00:00.01 |
| 3 | CONNECT BY WITHOUT FILTERING| | 1 | | | 100 |00:00:00.01 |
| 4 | FAST DUAL | | 1 | 1 | 2 (0)| 1 |00:00:00.01 |
Predicate Information (identified by operation id):
1 - filter("CHARACTER"=:V1)
SQL_ID 7qzd4aq5xr6g3, child number 0
SELECT * FROM (SELECT ROWNUM COUNTER, CHR(MOD(ROWNUM-1,26)+65) CHARACTER FROM
DUAL CONNECT BY LEVEL<=100) WHERE CHARACTER= :V2
Plan hash value: 761049541
| Id | Operation | Name | Starts | E-Rows | Cost (%CPU)| A-Rows | A-Time |
|* 1 | VIEW | | 1 | 1 | 2 (0)| 4 |00:00:00.01 |
| 2 | COUNT | | 1 | | | 100 |00:00:00.01 |
| 3 | CONNECT BY WITHOUT FILTERING| | 1 | | | 100 |00:00:00.01 |
| 4 | FAST DUAL | | 1 | 1 | 2 (0)| 1 |00:00:00.01 |
Predicate Information (identified by operation id):
1 - filter(SYS_OP_C2C("CHARACTER")=:V2)Notice in the Predicate Information section of the second execution plan, a function is applied to the column - that SYS_OP_C2C function will likely prevent a normal (non-function based) index from helping to improve the execution performance.
To answer your question, it is the client application that must correctly define the bind variable types.
Charles Hooper
Co-author of "Expert Oracle Practices: Oracle Database Administration from the Oak Table"
http://hoopercharles.wordpress.com/
IT Manager/Oracle DBA
K&M Machine-Fabricating, Inc. -
Memory Dump for Bind Variable included in 10046 trace file
A curious thing I've seen today. While looking through an extended Oracle Trace file, I see the following:
=====================
PARSING IN CURSOR #26 len=88 dep=0 uid=28 oct=6 lid=28 tim=2667421262 hv=3259943383 ad='4bbb4ad8'
UPDATE V_QRTZ_TRIGGERS SET JOB_DATA = :1 WHERE TRIGGER_NAME = :2 AND TRIGGER_GROUP = :3
END OF STMT
PARSE #26:c=0,e=54,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,tim=2667421260
BINDS #26:
bind 0: dty=113 mxl=3876(3876) mal=00 scl=00 pre=00 oacflg=03 oacfl2=0 size=3876 offset=0
bfp=0cd99aa4 bln=3876 avl=86 flg=05
value=
Dump of memory from 0x0CD99AA4 to 0x0CD99AFA
*CD99AA0 01005400 00002C01 00000100 [.T...,......]*
*CD99AB0 00000100 EB23EF03 581D0000 571D0000 [......#....X...W]*
*CD99AC0 0F000F00 00000000 0F005920 0E14E12F [........ Y../...]*
*CD99AD0 CDE21ADA 00000000 737E06D9 0400FB09 [..........~s....]*
*CD99AE0 07000F00 800387E6 A17B3F20 0000000E [........ ?{.....]*
*CD99AF0 571D0000 EE56CF00 00001500 [...W..V.....]*
bind 1: dty=1 mxl=128(45) mal=00 scl=00 pre=00 oacflg=03 oacfl2=10 size=256 offset=0
bfp=0cd99984 bln=128 avl=15 flg=05
value="EC-MHM Retrieve"
bind 2: dty=1 mxl=128(96) mal=00 scl=00 pre=00 oacflg=03 oacfl2=10 size=0 offset=128
bfp=0cd99a04 bln=128 avl=32 flg=01
value="2BBDE87AF15D4B5E867AB6482D7D58C8"
BINDS #9:
bind 0: dty=1 mxl=32(18) mal=00 scl=00 pre=00 oacflg=03 oacfl2=1 size=192 offset=0
bfp=0c2de90c bln=32 avl=18 flg=05
value="EC_SCHEDULE_PIN_TO"
bind 1: dty=1 mxl=128(15) mal=00 scl=00 pre=00 oacflg=13 oacfl2=1 size=0 offset=32
bfp=0c2de92c bln=128 avl=15 flg=01
value="EC-MHM Retrieve"
bind 2: dty=1 mxl=32(32) mal=00 scl=00 pre=00 oacflg=13 oacfl2=1 size=0 offset=160
bfp=0c2de9ac bln=32 avl=32 flg=01
value="2BBDE87AF15D4B5E867AB6482D7D58C8"
EXEC #9:c=15625,e=1060,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=1,tim=2667424863
FETCH #9:c=0,e=95,p=0,cr=4,cu=0,mis=0,r=1,dep=1,og=1,tim=2667425091
FETCH #9:c=0,e=1,p=0,cr=0,cu=0,mis=0,r=0,dep=1,og=0,tim=2667425236
Is this normal and is it caused by size of Bind Variable?
Kind regards,
TRONdIt's normal and and happens due to bind variable datatype. In your case this is blob, (there are a couple of other datatypes - timestamp among other) which will be represented that way in the trace file.
Best regards
Maxim -
High SQL*Net message values in trace file.
Hi all,
This is my first post here. I will try to more less describe the problem i am facing.
Any help is more than welcome!
I am facing some performance issues with application. Slow GUI. I run some tests, i tracked the session. what i found in trace file is:
OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS
call count cpu elapsed disk query current rows
Parse 1734 1.61 1.61 0 0 0 0
Execute 1734 32.52 32.56 0 26 15 4
Fetch 1737 14.46 14.51 2 41867 84 2847
total 5205 48.59 48.69 2 41893 99 2851
Misses in library cache during parse: 7
Misses in library cache during execute: 5
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 5207 0.00 0.02
SQL*Net message from client 5206 106.18 339.72
log file sync 3 0.00 0.00
SQL*Net more data to client 51 0.00 0.00
SQL*Net more data from client 10 0.00 0.00
Disk file operations I/O 1 0.00 0.00
db file sequential read 2 0.00 0.01
library cache: mutex X 1 0.05 0.05
Look at Max. Wait and Total Waited columns. Is it possible to safely tune it by changing SDU in sql*net ? and if so, is it needed to change the SDU value on client and server sides ?66ff73bb-87bd-4c84-bada-0141fb25344b wrote:
Hi all,
This is my first post here. I will try to more less describe the problem i am facing.
Any help is more than welcome!
I am facing some performance issues with application. Slow GUI. I run some tests, i tracked the session. what i found in trace file is:
OVERALL TOTALS FOR ALL NON-RECURSIVE STATEMENTS
call count cpu elapsed disk query current rows
Parse 1734 1.61 1.61 0 0 0 0
Execute 1734 32.52 32.56 0 26 15 4
Fetch 1737 14.46 14.51 2 41867 84 2847
total 5205 48.59 48.69 2 41893 99 2851
Misses in library cache during parse: 7
Misses in library cache during execute: 5
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 5207 0.00 0.02
SQL*Net message from client 5206 106.18 339.72
log file sync 3 0.00 0.00
SQL*Net more data to client 51 0.00 0.00
SQL*Net more data from client 10 0.00 0.00
Disk file operations I/O 1 0.00 0.00
db file sequential read 2 0.00 0.01
library cache: mutex X 1 0.05 0.05
Look at Max. Wait and Total Waited columns. Is it possible to safely tune it by changing SDU in sql*net ? and if so, is it needed to change the SDU value on client and server sides ?
When you start with the wrong question, no matter how good an answer you get, it won't matter very much.
you do NOT have any problem; just a useless observation. -
Trace files being truncated after 18mb
I have enabled trace file debugging for my application and after the trace file has reached approx 18mb, it stops writing to the file. Im also doing logging and the log file is usually around 80mb. Is there some sort of maximum file size restriction? How do I fix this?
You gave almost no details but as a general statement there are no limits on file sizes, at least with the size of files you're dealing with. Some O/S's and file systems might have an issue after 2GB.
What is your application? What kind of logging does it use (i.e. log4j, jdk logging, etc). What O/S are you on? How much free disk space do you have? -
Record type variables in the SQL database trace file
Hi,
I turned on the trace with binds and waits in a ebusiness form and captured the database SQL trace file. It lists the values for the generic datatypes for the call, but does not list the values of record type variables. Is there a way to identify the values of record type variables? The below section lists the procedure call and the values passed. Thanks in advance.
RPC CALL:PROCEDURE APPS.HZ_PARTY_SEARCH.FIND_PARTY_DETAILS(P_INIT_MSG_LIST IN VARCHAR2, P_RULE_ID IN NUMBER, P_PARTY_SEARCH_REC IN PARTY_SEARCH_REC_TYPE, P_PARTY_SITE_LIST IN PARTY_SITE_LIST, P_CONTACT_LIST IN CONTACT_LIST, P_CONTACT_POINT_LIST IN CONTACT_POINT_LIST
, P_RESTRICT_SQL IN VARCHAR2, P_MATCH_TYPE IN VARCHAR2, P_SEARCH_MERGED IN VARCHAR2, X_SEARCH_CTX_ID OUT NUMBER, X_NUM_MATCHES OUT NUMBER, X_RETURN_STATUS OUT VARCHAR2, X_MSG_COUNT OUT NUMBER, X_MSG_DATA OUT VARCHAR2);
RPC BINDS:
bind 0: dty=1 bfp=2ae5927c13c8 flg=08 avl=01 mxl=01 val="T"
bind 1: dty=6 bfp=2ae5927c13f0 flg=00 avl=02 mxl=22 val=8
bind 2: dty=118 bfp=2ae593432e48 flg=00 avl=00 mxl=00 val=00
bind 3: dty=251 bfp=2ae5929ac0b8 flg=00 avl=1944 mxl=00 val=00
bind 4: dty=251 bfp=2ae592d85548 flg=00 avl=5336 mxl=00 val=00
bind 5: dty=251 bfp=2ae592d84d58 flg=00 avl=4984 mxl=00 val=00
bind 6: dty=1 bfp=2ae5927c1550 flg=08 avl=125 mxl=2000 val="exists (select 'x' from hz_parties where party_id =stage.party_id and party_type = 'ORGANIZATION') and party_id <>1002277174"
bind 7: dty=1 bfp=2ae5927c1d50 flg=0a avl=00 mxl=00 val=""
bind 8: dty=1 bfp=2ae5927c1d80 flg=08 avl=01 mxl=01 val="I"
bind 9: dty=6 bfp=2ae5927c1da8 flg=02 avl=00 mxl=22 val=00
bind 10: dty=6 bfp=2ae5927c1de0 flg=02 avl=00 mxl=22 val=00
bind 11: dty=1 bfp=2ae5927c1e28 flg=0a avl=00 mxl=01 val=""
bind 12: dty=6 bfp=2ae5927c1e50 flg=02 avl=00 mxl=22 val=00
bind 13: dty=1 bfp=2ae5927c1e98 flg=0a avl=00 mxl=2000 val=""Hello,
From the sounds of it, when you are adding a child the application is not maintaining the Company's reference to it. For instance, in a 1:M and M:1 relationship, the application seems to be setting only the M:1 part (child to parent) which will cause the database to be updated, but both sides need to be set to keep the cache in synch with the database.
Setting the cache type to be none is not a good idea - it prevents any caching, which will hurt performance and object identity. What instead is recommended is disabling the shared cache using the
toplink.cache.shared.<ENTITY>=false property. This still might not help though if the Company's reference to the child hasn't been set as mentioned above if you are reading Company from the same context you are adding the child.
The Cache is described for TopLink Essentials in the blog at:
http://weblogs.java.net/blog/guruwons/archive/2006/09/understanding_t.html
Best Regards,
Chris -
Numerous trace files are generating every minute causing space issue
Hi All,
numerous trace files are generating every minute <SID>_<PID>_APPSPERF01.trc format.
entry in trace file will be like..
EXEC #10:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,plh=1734896627,tim=1339571764486430
WAIT #10: nam='SQL*Net message to client' ela= 6 driver id=1952673792 #bytes=1 p3=0 obj#=34562 tim=1339571764491273
FETCH #10:c=0,e=0,p=0,cr=2,cu=0,mis=0,r=1,dep=0,og=1,plh=1734896627,tim=1339571764486430
WAIT #10: nam='SQL*Net message from client' ela= 277 driver id=1952673792 #bytes=1 p3=0 obj#=34562 tim=1339571764491806
EXEC #11:c=0,e=0,p=0,cr=0,cu=0,mis=0,r=0,dep=0,og=1,plh=2638510909,tim=1339571764486430
FETCH #11:c=0,e=0,p=0,cr=9,cu=0,mis=0,r=0,dep=0,og=1,plh=2638510909,tim=1339571764486430
WAIT #11: nam='SQL*Net message to client' ela= 6 driver id=1952673792 #bytes=1 p3=0 obj#=34562 tim=1339571764493265
*** 2012-06-13 03:16:14.496
WAIT #11: nam='SQL*Net message from client' ela= 10003326 driver id=1952673792 #bytes=1 p3=0 obj#=34562 tim=1339571774496705
BINDS #10:
Bind#0
oacdty=01 mxl=32(21) mxlc=00 mal=00 scl=00 pre=00
oacflg=00 fl2=1000001 frm=01 csi=871 siz=2064 off=0
kxsbbbfp=2b8ec799df38 bln=32 avl=03 flg=05
value="535"
Bind#1
oacdty=01 mxl=32(21) mxlc=00 mal=00 scl=00 pre=00
oacflg=00 fl2=1000001 frm=01 csi=871 siz=0 off=32
kxsbbbfp=2b8ec799df58 bln=32 avl=04 flg=01
value="1003"
SQL> show parameter trace
NAME TYPE VALUE
tracefiles_public boolean TRUE
log_archive_trace integer 0
sec_protocol_error_trace_action string TRACE
sql_trace boolean FALSE
trace_enabled boolean TRUE
tracefile_identifier string
Profile options like "FND:Debug Log Enabled" and "Utilities:SQL Trace" are set to No
Can some one help me to stop these trace generation.
is there any way to find the cause for these trace?
Thanks in adv...Hi;
Please check who enable trace. Please see:
How to audit users who enabled traces?
check concurrent programs first
*from the screen
*F11, then select the trace, then Ctrl+F11
Concurrent > program > define
open the form, press F11 (query mode), select the trace, then (ctrl + f11) this should return all concurrent programs which have trace enabled
Regard
Helios -
Trace file generation using oradebug
DB version : 10.2.0.4.0
OS : Solaris 5.10
I am trying to trace a session started by a Java application.
So, i've logged in as SYS. Got pid, spid from v$process. Then started the debug
SYS@MN_PROD>oradebug setospid 2523
SYS@MN_PROD>oradebug event 10046 trace name context forever, level 32and closed it using
oradebug event 10046 trace name context offWhen i type
ORADEBUG TRACEFILE_NAMEIt shows a filename in bdump directory. But i can't find this file in bdump or udump.
Is there any init.ora setting i need to do to get this file generated?Decimal Binary Description
1 0001 Emit statistics for parse, execute, fetch, commit, and rollback database calls (standard sql_trace)
2 0010 Unknown
4 0100 Emit values for SQL bind variables (also called “placeholders”)
8 1000 Emit statistics for Oracle kernel internal function calls (also called “wait events”) listed in v$event_name
These levels can be combined as if by a bitwise or function to produce combinations of data in an Oracle trace file.
A value of 15 is just a combination of all 4 preceeding values -
Trace file issue...
Hi
All,
When I start the database it contineuos write the trace file without any reason..
These are more information on this
-rw-r----- 1 oracle dba 95433 Oct 18 12:49 owsidev_reco_1273966.trc
-rw-r--r-- 1 oracle dba 302216 Oct 18 12:49 alert_OWSIDEV.log
-rw-r----- 1 oracle dba 541431 Oct 18 12:56 owsidev_s000_1286260.trc
-rw-r----- 1 oracle dba 73964 Oct 18 12:58 owsidev_smon_1269868.trc
-rw-r----- 1 oracle dba 676332 Oct 18 12:59 owsidev_cjq0_1282162.trc
-rw-r----- 1 oracle dba 57846 Oct 18 12:59 owsidev_pmon_1257582.trc
-rw-r----- 1 oracle dba 73372 Oct 18 12:59 owsidev_lgwr_1265770.trc
-rw-r----- 1 oracle dba 162201 Oct 18 12:59 owsidev_ckpt_1253486.trc
-rw-r----- 1 oracle dba 69532 Oct 18 12:59 owsidev_dbw0_1228910.trc
oracle@f80dev:/u01/app/oracle/admin/OWSIDEV/bdump>more owsidev_reco_1273966.trc /u01/app/oracle/admin/OWSIDEV/bdump/owsidev_reco_1273966.trc
Oracle9i Enterprise Edition Release 9.2.0.6.0 - 64bit Production With the Partitioning, OLAP and Oracle Data Mining options JServer Release 9.2.0.6.0 - Production ORACLE_HOME = /u01/app/oracle/product/9.2.0
System name: AIX
Node name: f80dev
Release: 2
Version: 5
Machine: 000D0C9D4C00
Instance name: OWSIDEV
Redo thread mounted by this instance: 0 <none> Oracle process number: 7 Unix process pid: 1273966, image: oracle@f80dev (RECO)
*** SESSION ID:(6.1) 2007-10-18 12:08:43.808 WAIT #0: nam='rdbms ipc message' ela= 785267 p1=300 p2=0 p3=0 WAIT #0: nam='rdbms ipc message' ela= 2119175 p1=217 p2=0 p3=0
*** 2007-10-18 12:09:46.009
WAIT #0: nam='rdbms ipc message' ela= 58593777 p1=6000 p2=0 p3=0 ===================== PARSING IN CURSOR #2 len=198 dep=2 uid=0 oct=3 lid=0 tim=1164772837901826 hv=2703824309 ad='7f660e8'
select obj#,type#,ctime,mtime,stime,status,dataobj#,flags,oid$, spare1, spare2 from obj$ where owner#=:1 and name=:2 and namespace=:
3 and remoteowner is null and linkname is null and subname is null END OF STMT PARSE #2:c=0,e=159,p=0,cr=0,cu=0,mis=0,r=0,dep=2,og=4,tim=1164772837901816
BINDS #2:
bind 0: dty=2 mxl=22(22) mal=00 scl=00 pre=00 oacflg=08 oacfl2=1 size=24 offset=0
bfp=11028d018 bln=22 avl=01 flg=05
value=0
bind 1: dty=1 mxl=32(14) mal=00 scl=00 pre=00 oacflg=18 oacfl2=1 size=32 offset=0
bfp=11028cfe0 bln=32 avl=14 flg=05
value="PENDING_TRANS$"
bind 2: dty=2 mxl=22(22) mal=00 scl=00 pre=00 oacflg=08 oacfl2=1 size=24 offset=0
Any clue..
Thanks,
Vishal
Message was edited by:
vishal patelYou displayed your owsidev_reco_1273966.trc file. This is the trace file being generated by the recoverer process.
http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/process.htm#i21745
http://download.oracle.com/docs/cd/B19306_01/server.102/b14231/manproc.htm#sthref667
http://download.oracle.com/docs/cd/B19306_01/server.102/b14220/process.htm#i24691 -
Need information from the Trace file.
Hi
I have enabled the trace file for the query and found that the below contents in top of the query in trace file .Could you please explain what are the below values and need explanation.
**PARSING IN CURSOR #2 len=82 dep=1 uid=0 oct=3 lid=0 tim=52772641300291 hv=3873422482 ad='3a40cc8c8' sqlid='0k8522rmdzg4k'**
Note : Please provide the notes if have any.
Thanks
LioThis is of course right but TKPROF has also some limitations: for example TKPROF does not report values for bind variables but you can find them in raw trace file.
-
How to stop the generation of the trace files relate to the particular user
Dear All,
Please advice:
Is it possible to stop the trace file created by a user for a particular job (sql/exp)
For example :
Trace files create whenever the user run the sql/exp command from his application server.
This will created a huge files and caused the file system getting full (not in bdump but it is generation in application user home directory).
Is there any method to stop the generation of the trace files relate to the particular user base on that job.
thanks,
ShanojDear SHANOJ
This trigger will created for that specific user by dba or person who have sysdba privs. it will triggered at the login time of that user and alter the sqltrace.
for example we have write one trigger in our database for every ddl operation in database.
CREATE OR REPLACE TRIGGER "SYS"."SYS$DDLTRIG" after DDL on database
declare
v_machinename VARCHAR2(100);
v_osuser VARCHAR2(100);
v_dbuser VARCHAR2(100);
v_host VARCHAR2(100);
v_program VARCHAR2(100);
v_instance VARCHAR2(100);
v_date VARCHAR2(100);
begin
select to_char(sysdate, 'mm-dd-yyyy HH24:MI:SS'),user,sys_context('userenv','OS_
USER'),sys_context('userenv','HOST'), (select instance_name from v$instance),(se
lect program from v$session where sid = (select distinct sid from v$mystat)),(se
lect machine from v$session where sid = (select distinct sid from v$mystat)) int
o v_date,v_dbuser,v_osuser,v_host,v_instance,v_program,v_machinename from dual;
IF ora_sysevent = 'DROP' or ora_sysevent = 'REVOKE' or ora_sysevent = 'GRANT' or
ora_sysevent = 'CREATE' or ora_sysevent = 'TRUNCATE' or ora_sysevent = 'ALTER'
Then
insert into ddl_log_new(v_date,v_dbuser,v_osuser,v_host,v_instance,v_program,v_m
achinename,V_EVENT,V_OBJECT_NAME,V_OBJECT_TYPE,V_OBJECT_OWNER) values (v_date,v_
dbuser,v_osuser,v_host,v_instance,v_program,v_machinename,ora_sysevent,ora_dict_
obj_name,ora_dict_obj_type,ora_dict_obj_owner);
END IF;
END;
i hope above example will helpful for u,
Regards
Ambrish
Edited by: ambrishr24 on Dec 5, 2012 5:02 PM
Edited by: ambrishr24 on Dec 5, 2012 5:05 PM
Edited by: ambrishr24 on Dec 5, 2012 5:20 PM
Maybe you are looking for
-
Grain much worse on DVD than in FC timeline
Hi everybody. I'm working with some clips that are too dark. I brightened them in Final Cut using three-way color corrector, exported the timeline as usual and burned the film onto DVD. The grain is about twice as bad on the DVD as it is in Final Cut
-
It's very sad that after 8 years of loyalty fios will not honor my contract for another 2 years. Optimum is more then happy to take 11,000 dollars with of business the next 8 years or so .. Really fios you can't cut a loyal customer a break ! But wil
-
Problem for applying logs automatically to Standby
DBAz, In my Dataguard , The primary database is archiving to the standby location. But after that when we are verifying using following queries Its showing that, the recently archived log is not applied. Also From the primary it looks like the log we
-
How to transfer data between laptops?
The keyboard on my old MacBook Pro is no longer working. How do I boot it up, via firewire, from my newer MacBook Pro? I want to access the data housed on the broken laptop and transfer it to the newer, working one.
-
I have a 1:44 acting demo reel i want to put on my web site, i just saved it as a .mov quicktime file and it's 75 MB, which is actually tto big for my site, how can i get the file smaller? thanks all.