Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Mailing Lists -> Oracle-L -> Re: Analyze the tkprof output
This is a multi-part message in MIME format.
------=_NextPart_000_009A_01BF932A.5AEB41E0 Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Hi , Thomas & all !
U're right , but i'm talking about extensive parsing for exactly the =
same statement .=20
For example this :
SELECT emp_data=20
from
emp where emp_id=3D:1
call count cpu elapsed disk query current =
rows
------- ------ -------- ---------- ---------- ---------- ---------- =
Parse 8 0.01 0.01 0 0 0 = 0 Execute 4 0.00 0.00 0 0 0 = 0 Fetch 4 0.00 0.00 0 4 16 = 4
total 16 0.01 0.01 0 4 16 = 4
U see , there are 2 parses for each fetch and one execute for each fetch =
.
As far as i understand there should be 1 parse and one execute for all =
the 4 fetches . Isn't it correct ?=20
TIA=20
You're SQL statements are significantly different. comparing ename like 'SMITH%' is not the same as empid =3D :1 You will need to compare two similar statements such as empid =3D 1234 = and empid =3D :1
-----Original Message-----
From: root_at_fatcity.com [mailto:root_at_fatcity.com]On Behalf Of Andrey =
Bronfin
Sent: Tuesday, May 09, 2000 4:18 AM
To: Multiple recipients of list ORACLE-L
Subject: Analyze the tkprof output=20
HI , ALL ! I'm having a pretty strange tkprof output of a SQL trace . There is a Java program that runs SQL queries , and it looks like =each statement is parsed 3 times for each execution when we're not using = bind variables ,=20
and each statement is parsed 2 times when we're using bind = variables .
There is also an execution for every fetch of a query . We use Oracle 8.1.5 on Windows2000 . Both the Oracle8i and Windows are new for me . I previously used = Oracle8 on HP-UX and i never seen this kind of tkprof results . Please help ! TIA=20 Here is what i have in my *.prf file : Select ename,emp_id from emp where ename like 'SMITH%' order by ename call count cpu elapsed disk query = current rows:
------- ------ -------- ---------- ---------- ---------- =
---------- ---------------------------------------- Parse 15 0.03 0.03 0 0 = 0 0 Execute 5 0.00 0.00 0 0 = 0 0 Fetch 5 0.00 0.00 0 5 = 0 10 ------- ------ --------------------------------- -------- = ---------- ---------- ---------- ---------- ---------- total 25 0.03 0.03 0 5 = 0 10 Misses in library cache during parse: 0 When we use bind variables in the Java program i see the following =
SELECT emp_data=20 from emp where emp_id=3D:1 call count cpu elapsed disk query = current rows
------- ------ -------- ---------- ---------- ---------- =
---------- ----------------------------------------- Parse 8 0.01 0.01 0 0 = 0 0 Execute 4 0.00 0.00 0 0 = 0 0 Fetch 4 0.00 0.00 0 4 = 16 4
------- ------ -------- ---------- ---------- ---------- =
---------- ----------------------------------------------- total 16 0.01 0.01 0 4 = 16 4 Thanks a lot in advance !!
------=_NextPart_000_009A_01BF932A.5AEB41E0 Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD> <META content=3D"text/html; charset=3Diso-8859-1" =http-equiv=3DContent-Type>
<META content=3D"MSHTML 5.00.2920.0" name=3DGENERATOR> <STYLE></STYLE> </HEAD> <BODY bgColor=3D#ffffff> <DIV><FONT face=3DArial size=3D2>Hi , Thomas & all !</FONT></DIV> <DIV><FONT face=3DArial size=3D2>U're right , but i'm talking about =extensive=20
<DIV><FONT face=3DArial size=3D2>For example this :</FONT></DIV> <DIV><FONT face=3DArial size=3D2> <DIV><FONT face=3DArial size=3D2>SELECT emp_data = <BR>from<BR> emp where=20
rows<BR>------- ------ -------- ---------- ---------- ----------=20 ---------- =20 -----------------------------------------<BR>Parse  =; =20
0.01 =20
0 =20 0 =20 0 =200<BR>Execute = 4 =20
0 =20 0 =20 0 =200<BR>Fetch =20 4 0.00 =
0.00 =20 0 =20 4 =20 16 =
4<BR>-------=20 ------ -------- ---------- ---------- ---------- ---------- =20 -----------------------------------------------<BR>total  =; =20 16 =
<DIV> </DIV> <DIV>TIA </DIV></FONT></DIV> <DIV> </DIV> <BLOCKQUOTE=20
</DIV> <DIV><BR></DIV> <DIV><FONT color=3D#0000ff face=3DArial size=3D2><SPAN=20class=3D290122006-10052000>You're SQL statements are significantly=20 different.</SPAN></FONT></DIV>
size=3D2>-----Original Message-----<BR><B>From:</B> <A=20 href=3D"mailto:root_at_fatcity.com">root_at_fatcity.com</A> [<A=20 href=3D"mailto:root_at_fatcity.com">mailto:root_at_fatcity.com</A>]<B>On =Behalf Of=20
</B>Andrey Bronfin<BR><B>Sent:</B> Tuesday, May 09, 2000 4:18=20 AM<BR><B>To:</B> Multiple recipients of list = ORACLE-L<BR><B>Subject:</B>=20
Analyze the tkprof output <BR><BR></DIV></FONT>
<BLOCKQUOTE=20
style=3D"BORDER-LEFT: #000000 2px solid; MARGIN-LEFT: 5px; =
MARGIN-RIGHT: 0px; PADDING-LEFT: 5px; PADDING-RIGHT: 0px">
<DIV><BR></DIV> <DIV><FONT face=3DArial size=3D2>HI , ALL !</FONT></DIV> <DIV><FONT face=3DArial size=3D2>I'm having a pretty strange = tkprof output of=20 a SQL trace .</FONT></DIV> <DIV><FONT face=3DArial size=3D2>There is a Java program that runs = SQL=20 queries , and it looks like each statement is parsed 3 times = for=20 each execution when we're not using bind variables , </FONT></DIV> <DIV><FONT face=3DArial size=3D2>and each statement is = parsed 2=20 times when we're using bind variables = .</FONT></DIV> <DIV><FONT face=3DArial size=3D2>There is also an execution for = every fetch of=20 a query .</FONT></DIV> <DIV><FONT face=3DArial size=3D2>We use Oracle 8.1.5 on = Windows2000=20 .</FONT></DIV> <DIV><FONT face=3DArial size=3D2>Both the Oracle8i and Windows are = new for me=20 . I previously used Oracle8 on HP-UX and i never seen this kind of = tkprof=20 results .</FONT></DIV> <DIV><FONT face=3DArial size=3D2>Please help !</FONT></DIV> <DIV><FONT face=3DArial size=3D2>TIA </FONT></DIV> <DIV> </DIV> <DIV><FONT face=3DArial size=3D2>Here is what i have in my *.prf = file=20 :</FONT></DIV> <DIV> </DIV> <DIV><FONT face=3DArial size=3D2>Select = ename,emp_id<BR>from<BR> emp=20 where ename like 'SMITH%' order by ename</FONT></DIV> <DIV><FONT face=3DArial size=3D2><BR>call =20 count cpu =20 elapsed =20 disk query =20 current rows<BR>-------=20 ------ -------- ---------- ---------- ---------- = ---------- =20 = ----------------------------------------<BR>Parse = =20 15 = 0.03 =20 0.03 =20 0 =20 0 =20 0 =20 0<BR>Execute = 5 =20 0.00 =20 0.00 =20 0 =20 0 =20 0 =20 0<BR>Fetch =20 5 = 0.00 =20 0.00 =20 0 =20 5 =20 0 = 10<BR>-------=20 ------ --------------------------------- -------- ----------=20 ---------- ---------- ---------- =20 ----------<BR>total =20 25 = 0.03 =20 0.03 =20 0 =20 5 =20 0 = 10</FONT></DIV> <DIV> </DIV> <DIV><FONT face=3DArial size=3D2>Misses in library cache during = parse:=20 0</FONT></DIV> <DIV> </DIV> <DIV> </DIV> <DIV><FONT face=3DArial size=3D2>When we use bind variables = in the Java=20 program i see the following :</FONT></DIV> <DIV> </DIV> <DIV><FONT face=3DArial size=3D2>SELECT emp_data = <BR>from<BR> emp=20 where emp_id=3D:1</FONT></DIV> <DIV><FONT face=3DArial size=3D2><BR>call =20 count cpu =20 elapsed =20 disk query =20 current rows<BR>-------=20 ------ -------- ---------- ---------- ---------- = ---------- =20 = -----------------------------------------<BR>Parse  = ; =20 8 = 0.01 =20 0.01 =20 0 =20 0 =20 0 =20 0<BR>Execute = 4 =20 0.00 =20 0.00 =20 0 =20 0 =20 0 =20 0<BR>Fetch =20 4 = 0.00 =20 0.00 =20 0 =20 4 =20 16 =20 4<BR>------- ------ -------- ---------- ---------- = ----------=20 ---------- =20 = -----------------------------------------------<BR>total  = ; =20 16 = 0.01 =20 0.01 =20 0 =20 4 =20Received on Tue Mar 21 2000 - 03:41:11 CST
![]() |
![]() |