Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Mailing Lists -> Oracle-L -> high tkprof parse counts == real # of hard parses?

high tkprof parse counts == real # of hard parses?

From: James Manning <jmm_at_sublogic.com>
Date: Thu, 07 Feb 2002 20:47:18 -0800
Message-ID: <F001.004099EE.20020207204320@fatcity.com>

I've seen what looks to be conflicting evidence, so I'm trying to get a handle on whether the tkprof output I'm seeing with the parse counts == execution counts is "real" or not:

What gets me is that it even happens for "static" statements that are happening in triggers - like this statement that's part of a insert trigger for a table to set the PK from a seq.


SELECT OBL_ID_SEQ.NEXTVAL
FROM
 DUAL call count cpu elapsed disk query current rows ------- ------ -------- ---------- ---------- ---------- ---------- ----------

Parse     7953      2.21       2.17          0          0          0           0
Execute   7953      1.18       1.24          0          0          0           0
Fetch     7953      1.25       1.22          0       7953      31821        7953
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total    23859      4.64       4.63          0       7953      31821        7953

Misses in library cache during parse: 0
Optimizer goal: CHOOSE
Parsing user id: 36 (PR_SCHEMA) (recursive depth: 2)

Rows Execution Plan

-------  ---------------------------------------------------
      0  SELECT STATEMENT   GOAL: CHOOSE
      0   SEQUENCE OF 'OBL_ID_SEQ'
      0    TABLE ACCESS (FULL) OF 'DUAL'


********************************************************************************

I wanna believe the Parse count is wrong, but the elapsed and CPU time are way too high to believe that it's actually only be parsed once :(

My shared pool is around 123MB at the moment - any way to definitely check whether that's the issue? seems like it shouldn't be given that size.

Here's a statement called from a jdbc client that has the same problem (my sql traces show the vast majority of sql strings, called from clients or from inside pl/sql, are having this issue)


select RANK_AVAIL_SECONDS
from
 overall_stats where USR_LOGNAME=:1

call count cpu elapsed disk query current rows ------- ------ -------- ---------- ---------- ---------- ---------- ----------

Parse      464      0.09       0.11          0          0          0           0
Execute    464      0.12       0.11          0          0          0           0
Fetch      464      0.03       0.03          0       1393          0         464
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total     1392      0.24       0.25          0       1393          0         464

Misses in library cache during parse: 1
Optimizer goal: CHOOSE
Parsing user id: 36 (PR_SCHEMA)

Rows Row Source Operation

-------  ---------------------------------------------------
      1  TABLE ACCESS BY INDEX ROWID OVERALL_STATS
      2   INDEX RANGE SCAN (object id 68692)


Rows     Execution Plan
-------  ---------------------------------------------------
      0  SELECT STATEMENT   GOAL: CHOOSE
      1   TABLE ACCESS   GOAL: ANALYZED (BY INDEX ROWID) OF
              'OVERALL_STATS'
      2    INDEX (RANGE SCAN) OF 'OSTATS_LOGN_IDX' (NON-UNIQUE)


********************************************************************************

I certainly appreciate any pointers or insights that can be provided - I just don't get why all these reparse's are happening.

In case it helps any, I *do* see these statements in the v$sql view - in fact the second one had high enough buffer_gets that I figured out a missing index :)

Thanks!

James

-- 
James Manning <jmm_at_sublogic.com>
GPG Key fingerprint = B913 2FBD 14A9 CE18 B2B7  9C8E A0BF B026 EEBB F6E4
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: James Manning
  INET: jmm_at_sublogic.com

Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
San Diego, California        -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).
Received on Thu Feb 07 2002 - 22:47:18 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US