RE: DBA_HIST_SQLSTAT

From: <Christopher.Taylor2_at_parallon.net>
Date: Wed, 21 Nov 2012 08:20:14 -0600
Message-ID: <F05D8DF1FB25F44085DB74CB916678E8856526010D_at_NADCWPMSGCMS10.hca.corpad.net>



One thing that is frustrating my efforts to mine this the way I want is to identify application SQL code that is practically the same, versus exactly the same. For example, I need both SQL statements that differ by literals and SQL statements that differ by plans.

In DBA_HIST_SQLSTAT the PLAN_HASH_VALUE may or may not be the same for different SQL_IDs that differ by literals, and the SQL_IDS may have different PLAN_HASH_VALUES as well for one period as the code doing operations that invalidate prior plans (partition maintenance primarily).

I would like to be able to "roll up" similar statements (where SQL_IDs are the same and where the SQL_IDs are different but the statement are fundamentally the same).

I'm beginning to doubt I'm going to be able to accomplish that in any meaningful way.

Chris

From: David Fitzjarrell [mailto:oratune_at_yahoo.com] Sent: Tuesday, November 20, 2012 4:06 PM To: Taylor Christopher - Nashville; Jed_Walker_at_cable.comcast.com; andy_at_oracledepot.com Cc: oracle-l_at_freelists.org
Subject: Re: DBA_HIST_SQLSTAT

Different literals will generate a different sql_id; queries using bind variables can generate multiple child cursors when the bind data changes.

David Fitzjarrell

From: "Christopher.Taylor2_at_parallon.net<mailto:Christopher.Taylor2_at_parallon.net>" <Christopher.Taylor2_at_parallon.net<mailto:Christopher.Taylor2_at_parallon.net>> To: Jed_Walker_at_cable.comcast.com<mailto:Jed_Walker_at_cable.comcast.com>; andy_at_oracledepot.com<mailto:andy_at_oracledepot.com>; oratune_at_yahoo.com<mailto:oratune_at_yahoo.com> Cc: oracle-l_at_freelists.org<mailto:oracle-l_at_freelists.org> Sent: Tuesday, November 20, 2012 1:56 PM Subject: RE: DBA_HIST_SQLSTAT

I believe child cursors are different versions of the same statement - I believe this comes into play with literals.

So that if a SQL statement varies by a literal in the Predicate for example, I believe it becomes a new child - since its the not exact same SQL but is effectively the same. I may be mistaken on that (or my wording/understanding of it).

Chris

-----Original Message-----
From: Walker, Jed S [mailto:Jed_Walker_at_cable.comcast.com<mailto:Jed_Walker_at_cable.comcast.com>] Sent: Tuesday, November 20, 2012 2:53 PM To: andy_at_oracledepot.com<mailto:andy_at_oracledepot.com>; oratune_at_yahoo.com<mailto:oratune_at_yahoo.com> Cc: Taylor Christopher - Nashville; oracle-l_at_freelists.org<mailto:oracle-l_at_freelists.org> Subject: RE: DBA_HIST_SQLSTAT

I've been looking at this now and am wondering about VERSION_COUNT. The definition is "Number of children associated with the cursor". What exactly is meant by children?

-----Original Message-----
From: oracle-l-bounce_at_freelists.org<mailto:oracle-l-bounce_at_freelists.org> [mailto:oracle-l-bounce_at_freelists.org<mailto:oracle-l-bounce_at_freelists.org>] On Behalf Of Andy Klock Sent: Tuesday, November 20, 2012 12:25 PM To: oratune_at_yahoo.com<mailto:oratune_at_yahoo.com> Cc: Christopher.Taylor2_at_parallon.net<mailto:Christopher.Taylor2_at_parallon.net>; oracle-l_at_freelists.org<mailto:oracle-l_at_freelists.org> Subject: Re: DBA_HIST_SQLSTAT

On Tue, Nov 20, 2012 at 12:24 PM, David Fitzjarrell <oratune_at_yahoo.com<mailto:oratune_at_yahoo.com>>wrote:
> They don't, actually. The executions_total is the total executions
> since the database was started, the elapsed_time_total is the total since the db
> was started and the deltas are for each snapshot and don't roll up. I
> came into a shop where a script was running to generate execution
> time reports for long-running queries but it didn't take into account
> that the deltas don't roll up. I rewrote it to provide total
> execution times across snapshots for a given sql_id:
>

My experience is hit and miss when making calculations with executions_total and executions_delta. The reason being these numbers aren't cumulative to the start of the instance but rather since the time they've been in the library cache. (same as v$sqlstats). So, sometimes for long running queries (that span across multiple snapshots) it's possible that they will never show an execution in AWR.

--
http://www.freelists.org/webpage/oracle-l


--
http://www.freelists.org/webpage/oracle-l




--
http://www.freelists.org/webpage/oracle-l
Received on Wed Nov 21 2012 - 15:20:14 CET

Original text of this message