Oracle FAQ Your Portal to the Oracle Knowledge Grid

Home -> Community -> Mailing Lists -> Oracle-L -> RE: Interesting problem

RE: Interesting problem

From: Vlado Barun <>
Date: Thu, 26 May 2005 16:06:30 -0400
Message-Id: <>


, another possibility is to put the query in question into a stored procedure, which starts a 10046 trace when called, and stops the trace after the query completes.

A restriction of this approach is that you wouldn't see the stat lines, but you would see the waits, parse, fetch exec,...

The stat lines are written only after the cursor closes (see )

Vlado Barun, M.Sc.
Senior Data Architect, Cadre5
Knoxville, TN

-----Original Message-----
From: [] On Behalf Of Stephane Faroult
Sent: Thursday, May 26, 2005 3:30 PM
Subject: Re: Interesting problem


Is 'I'd love to set 10046 but can't afford to do it for all processes and cannot catch the culprit' a correct interpretation of what you say? Unfortunately, you cannot catch the problem after it has occurred. It really depends on how your query is called. If it is called only by some sessions, and repeatedly, and if the table which is accessed is pretty typical of the query (ie you don't find it in most queries) - I know, quite a lot of conditions - perhaps you could check V$ACCESS and switch trace on whenever you notice (polling every minute) somebody accesses the table and pray for the problem to reproduce. Another solution, possibly more focused but otherwise a similar idea, would be to get SQL_ADDRESS and HASH_VALUE for the said statement in V$SQL , and check for their popping up in V$SESSION. By the way, it might be interesting to check how many copies of the text (how many children cursors) you have in V$SQL. It may happen that the same query applies to similarly named tables in distinct schemas and the high-water-mark of one of the tables (for instance) is very high (V$ACCESS could also hint at this type of case).

HTH Stephane Faroult

David Turner wrote:

>We've been using set client info on many of our
>production systems for some time and this helps us
>create resource usage reports so we can identify
>owners of bottlenecks. However, we do have some older
>systems where this isn't implemented and the
>transactions are much shorted so it's very hard to
>identify why some of our sessions have longer response
>For instance I have a query that scans maybe 4 blocks
>and returns data instantly when I run it manually but
>throughout the day periodically it takes well over 10
>seconds, which isn't acceptable.
>I've set up a script that montors the db every minute
>but it just doesn't appear to be catching what is
>causing our normally fast running queries to
>periodically run long. If any of you have any
>suggestions on diagnosing this I'd appreciate it.
>The main areas I've focused on are
>A minute by minute report of v$session and v$process
>Many of the standard performance tuning stats tracked
>via statspack
>Feed processes
>with no luck so far.
>Thx, Dave


Received on Thu May 26 2005 - 16:11:29 CDT

Original text of this message