<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: Find Objects with the Greatest Wait Time &#8211; What is Wrong with this Quote?</title>
	<atom:link href="http://hoopercharles.wordpress.com/2011/06/28/find-objects-with-the-greatest-wait-time-what-is-wrong-with-this-quote/feed/" rel="self" type="application/rss+xml" />
	<link>http://hoopercharles.wordpress.com/2011/06/28/find-objects-with-the-greatest-wait-time-what-is-wrong-with-this-quote/</link>
	<description>Miscellaneous Random Oracle Topics: Stop, Think, ... Understand</description>
	<lastBuildDate>Mon, 13 May 2013 14:10:06 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: Patrick Boulay</title>
		<link>http://hoopercharles.wordpress.com/2011/06/28/find-objects-with-the-greatest-wait-time-what-is-wrong-with-this-quote/#comment-3745</link>
		<dc:creator><![CDATA[Patrick Boulay]]></dc:creator>
		<pubDate>Wed, 03 Aug 2011 11:25:30 +0000</pubDate>
		<guid isPermaLink="false">http://hoopercharles.wordpress.com/?p=5076#comment-3745</guid>
		<description><![CDATA[Hi there 
nice post to say the least ...
I do have a website of mine on www.zion-dba.com with some charts done using AWR data 
best to all 
patrick boulay

&lt;em&gt;(Edit C. Hooper August 3, 2011: Please note that comments on this blog MUST refrain from advertising commercial products.  It does not appear that the intention of the above link is to advertise a commecial product, but instead to share a data analysis concept that could be implemented in Microsoft Excel.  If it is determined that this comment is in fact a commercial advertisement, this comment will be treated as spam, and will disappear.)&lt;/em&gt;]]></description>
		<content:encoded><![CDATA[<p>Hi there<br />
nice post to say the least &#8230;<br />
I do have a website of mine on <a href="http://www.zion-dba.com" rel="nofollow">http://www.zion-dba.com</a> with some charts done using AWR data<br />
best to all<br />
patrick boulay</p>
<p><em>(Edit C. Hooper August 3, 2011: Please note that comments on this blog MUST refrain from advertising commercial products.  It does not appear that the intention of the above link is to advertise a commecial product, but instead to share a data analysis concept that could be implemented in Microsoft Excel.  If it is determined that this comment is in fact a commercial advertisement, this comment will be treated as spam, and will disappear.)</em></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Oracle</title>
		<link>http://hoopercharles.wordpress.com/2011/06/28/find-objects-with-the-greatest-wait-time-what-is-wrong-with-this-quote/#comment-3626</link>
		<dc:creator><![CDATA[Oracle]]></dc:creator>
		<pubDate>Thu, 07 Jul 2011 21:18:21 +0000</pubDate>
		<guid isPermaLink="false">http://hoopercharles.wordpress.com/?p=5076#comment-3626</guid>
		<description><![CDATA[Hi Kyle,
Could you post the whole script with your &quot;changes&quot; according mentioned ?
Thank you]]></description>
		<content:encoded><![CDATA[<p>Hi Kyle,<br />
Could you post the whole script with your &#8220;changes&#8221; according mentioned ?<br />
Thank you</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kyle Hailey</title>
		<link>http://hoopercharles.wordpress.com/2011/06/28/find-objects-with-the-greatest-wait-time-what-is-wrong-with-this-quote/#comment-3575</link>
		<dc:creator><![CDATA[Kyle Hailey]]></dc:creator>
		<pubDate>Thu, 30 Jun 2011 16:49:10 +0000</pubDate>
		<guid isPermaLink="false">http://hoopercharles.wordpress.com/?p=5076#comment-3575</guid>
		<description><![CDATA[&gt;&gt;is it OK to replace that column with aas?
yep, error in script , thanks for the catch. I think tcnt (total count) is a vestige from an original version before I shifted it to AAS
&gt;&gt;SAMPLE_TIME being a TIMESTAMP column and any potential problems with comparing it to SYSDATE
One trick that has help me in queries is
     cast(sample_time as date )
not that it makes dealing with timezones any easier but it makes timestamp calculations easier]]></description>
		<content:encoded><![CDATA[<p>&gt;&gt;is it OK to replace that column with aas?<br />
yep, error in script , thanks for the catch. I think tcnt (total count) is a vestige from an original version before I shifted it to AAS<br />
&gt;&gt;SAMPLE_TIME being a TIMESTAMP column and any potential problems with comparing it to SYSDATE<br />
One trick that has help me in queries is<br />
     cast(sample_time as date )<br />
not that it makes dealing with timezones any easier but it makes timestamp calculations easier</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Charles Hooper</title>
		<link>http://hoopercharles.wordpress.com/2011/06/28/find-objects-with-the-greatest-wait-time-what-is-wrong-with-this-quote/#comment-3570</link>
		<dc:creator><![CDATA[Charles Hooper]]></dc:creator>
		<pubDate>Thu, 30 Jun 2011 01:45:18 +0000</pubDate>
		<guid isPermaLink="false">http://hoopercharles.wordpress.com/?p=5076#comment-3570</guid>
		<description><![CDATA[Kyle,
Wow, great answers and examples.  In the second of the above SQL statements you have a column tcnt in the ORDER BY clause - is it OK to replace that column with aas?

Martin,
Thanks for putting together the summary.  For some reason Wordpress required me to authorize Kyle&#039;s comments and your comment, thus delaying the posting of the comments by an hour, so that explains why your summary does not include any of the extra points made by Kyle.

---

No comments yet from anyone about SAMPLE_TIME being a TIMESTAMP column and any potential problems with comparing it to SYSDATE in the SQL statement at the start of this article?  Are there potential issue... what about a remote DBA in another time zone?]]></description>
		<content:encoded><![CDATA[<p>Kyle,<br />
Wow, great answers and examples.  In the second of the above SQL statements you have a column tcnt in the ORDER BY clause &#8211; is it OK to replace that column with aas?</p>
<p>Martin,<br />
Thanks for putting together the summary.  For some reason WordPress required me to authorize Kyle&#8217;s comments and your comment, thus delaying the posting of the comments by an hour, so that explains why your summary does not include any of the extra points made by Kyle.</p>
<p>&#8212;</p>
<p>No comments yet from anyone about SAMPLE_TIME being a TIMESTAMP column and any potential problems with comparing it to SYSDATE in the SQL statement at the start of this article?  Are there potential issue&#8230; what about a remote DBA in another time zone?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: martinberx</title>
		<link>http://hoopercharles.wordpress.com/2011/06/28/find-objects-with-the-greatest-wait-time-what-is-wrong-with-this-quote/#comment-3569</link>
		<dc:creator><![CDATA[martinberx]]></dc:creator>
		<pubDate>Wed, 29 Jun 2011 19:50:24 +0000</pubDate>
		<guid isPermaLink="false">http://hoopercharles.wordpress.com/?p=5076#comment-3569</guid>
		<description><![CDATA[Charles,
I&#039;ll ry a little summary so far:
* you showed how a _single_ wait can be SUMmed multiple times. Do you think the max WAIT_TIME or TIME WAITED in a direct series of ( equal EVENT _AND_ [SEQ#  constant increasing] ) can solve that particular issue? (or at least reduce the risk)
* we know now, &quot;ON CPU&quot; is not an object 
* the document refuses any information about current_obj#, it the wait is not part of &quot;application, cluster, concurrency, and user I/O wait events&quot;
* the documentation seems to be wrong in TIME WAITED as &quot;hundredths of seconds&quot; 
* Niall is right, &quot;objects don’t experience waits&quot; - but let&#039;s keept it similar to &quot;hot blocks&quot;?  
* Marcin is right (even not stated directly): &quot;the most wait time&quot; can never be provided ba a sampling mechanism as ASH. Even unlikely, there could be a crazy high number of other waits on a single object just between the samples. 

Do you expect any more comments?]]></description>
		<content:encoded><![CDATA[<p>Charles,<br />
I&#8217;ll ry a little summary so far:<br />
* you showed how a _single_ wait can be SUMmed multiple times. Do you think the max WAIT_TIME or TIME WAITED in a direct series of ( equal EVENT _AND_ [SEQ#  constant increasing] ) can solve that particular issue? (or at least reduce the risk)<br />
* we know now, &#8220;ON CPU&#8221; is not an object<br />
* the document refuses any information about current_obj#, it the wait is not part of &#8220;application, cluster, concurrency, and user I/O wait events&#8221;<br />
* the documentation seems to be wrong in TIME WAITED as &#8220;hundredths of seconds&#8221;<br />
* Niall is right, &#8220;objects don’t experience waits&#8221; &#8211; but let&#8217;s keept it similar to &#8220;hot blocks&#8221;?<br />
* Marcin is right (even not stated directly): &#8220;the most wait time&#8221; can never be provided ba a sampling mechanism as ASH. Even unlikely, there could be a crazy high number of other waits on a single object just between the samples. </p>
<p>Do you expect any more comments?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kyle Hailey</title>
		<link>http://hoopercharles.wordpress.com/2011/06/28/find-objects-with-the-greatest-wait-time-what-is-wrong-with-this-quote/#comment-3568</link>
		<dc:creator><![CDATA[Kyle Hailey]]></dc:creator>
		<pubDate>Wed, 29 Jun 2011 19:10:59 +0000</pubDate>
		<guid isPermaLink="false">http://hoopercharles.wordpress.com/?p=5076#comment-3568</guid>
		<description><![CDATA[Charles hit upon the main point,  which can be easily missed, that the event fields are only relevant for rows that indicate waiting. ASH doesn&#039;t always clear out the values in other fields, which leads to another confusing issue. The object fields 

CURRENT_OBJ#
CURRENT_FILE#
CURRENT_BLOCK#

 are only valid for certain waits, which are AFAIK

IO waits
buffer busy waits
enqueue tx waits

and even for these waits the values may be missing, -1, or 0 and in those cases the only way to get the objects is from the file and block #s, using p1 and p2 for most of the user I/O waits:

&lt;pre&gt;
select  segment_name,  
            segment_type
from     dba_extents 
where  file_id = P1 
     and P2  between 
    block_id and block_id + blocks – 1;
&lt;/pre&gt;]]></description>
		<content:encoded><![CDATA[<p>Charles hit upon the main point,  which can be easily missed, that the event fields are only relevant for rows that indicate waiting. ASH doesn&#8217;t always clear out the values in other fields, which leads to another confusing issue. The object fields </p>
<p>CURRENT_OBJ#<br />
CURRENT_FILE#<br />
CURRENT_BLOCK#</p>
<p> are only valid for certain waits, which are AFAIK</p>
<p>IO waits<br />
buffer busy waits<br />
enqueue tx waits</p>
<p>and even for these waits the values may be missing, -1, or 0 and in those cases the only way to get the objects is from the file and block #s, using p1 and p2 for most of the user I/O waits:</p>
<pre>
select  segment_name,  
            segment_type
from     dba_extents 
where  file_id = P1 
     and P2  between 
    block_id and block_id + blocks – 1;
</pre>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kyle Hailey</title>
		<link>http://hoopercharles.wordpress.com/2011/06/28/find-objects-with-the-greatest-wait-time-what-is-wrong-with-this-quote/#comment-3567</link>
		<dc:creator><![CDATA[Kyle Hailey]]></dc:creator>
		<pubDate>Wed, 29 Jun 2011 19:03:45 +0000</pubDate>
		<guid isPermaLink="false">http://hoopercharles.wordpress.com/?p=5076#comment-3567</guid>
		<description><![CDATA[IMO Macin hit the nail on the head. ASH is good for counting and statistical approximation.
I basically stay away from timings in ASH, though they can be of occasional use.
I especially stay away from wait_time, which, as I understand it , should have been left out of ASH and is basically the basis for &quot;On CPU&quot; or &quot;Waiting&quot;.
TIME_WAITED can be used but keep in mind, wait times will be skewed towards the longer waits as shorter waits will be caught less frequently.

If one is concerned with the top objects then look at the counts of waits on those objects. Waits on objects are only going to be instrumented for 3 types of waits AFAIK

io waits -  db file sequential read, db file scattered read\
buffer busy waits 
enqueue tx waits

You also have to target not only the wait events, but actual waits as opposed to ASH rows that were for CPU but still have left over data in other columns from previous waits.
For IO, you could do something like
&lt;pre&gt;
select
       count(*) cnt,
       CURRENT_OBJ#&#124;&#124;&#039; &#039;&#124;&#124;o.object_name objn,
       o.object_type otype
from v$active_session_history ash,
      all_objects o
where ( event like &#039;db file s%&#039; or event like &#039;direct%&#039; )
   and o.object_id (+)= ash.CURRENT_OBJ#
   and sample_time &gt; sysdate - &amp;1/(60*24)
   and session_state=&#039;WAITING&#039;
group by 
       CURRENT_OBJ#, o.object_name ,
       o.object_type 
Order by count(*)
&lt;/pre&gt;
giving something like
&lt;pre&gt;
 CNT     AAS OBJN                     OTYPE
---- ------- ------------------------- ---------------
  79     .00 52949 ORDER_ITEMS         TABLE PARTITION
  97     .00 -1
 130     .00 53117 ORD_STATUS_IX       INDEX
 498     .01 53120 CUST_EMAIL_IX       INDEX
 512     .01 0
1632     .03 53112 ITEM_ORDER_IX       INDEX
&lt;/pre&gt;
For Object I/O by SQL how about
&lt;pre&gt;
select
       round(sum(cnt) over ( partition by io.sql_id order by sql_id ) / (&amp;v_minutes*60),2) aas,
       io.sql_id,
       io.cnt cnt,
       100*cnt/sum(cnt) over ( partition by io.sql_id order by sql_id ) pct,
       o.object_name obj,
       o.subobject_name sub_obj,
       o.object_type otype,
       substr(io.event,8,10) event,
       io.p1 file#,
       f.tablespace_name tablespace_name,
       tbs.contents
from 
(
  select
        sql_id,
	event,
        count(*) cnt,
        count(*) / (&amp;v_minutes*60) aas,
        CURRENT_OBJ# ,
        ash.p1
   from v$active_session_history ash
   where ( event like &#039;db file s%&#039; or event like &#039;direct%&#039; )
      and sample_time &gt; sysdate - &amp;v_minutes/(60*24)
   group by 
       CURRENT_OBJ#, 
       event,
       ash.p1,
       sql_id
) io,
   dba_data_files f
   ,all_objects o
   , dba_tablespaces tbs
where
   f.file_id = io.p1
   and o.object_id (+)= io.CURRENT_OBJ#
   and tbs.tablespace_name= f.tablespace_name 
Order by  aas, sql_id, cnt
/

&lt;/pre&gt;
giving something like
&lt;pre&gt;
 AAS SQL_ID           %  OBJ              TABLESPACE
----- -------------  ---  ---------------  ----------
  .18 0yas01u2p9ch4    6  ITEM_PRODUCT_IX  SOEINDEX
                       6  ORDER_ITEMS_UK   SOEINDEX 
                      88  ITEM_ORDER_IX    SOEINDEX
  .32 6v6gm0fd1rgrz    6  WAIT_OBJECTS     SYSTEM
                      94  UNDO             UNDOTBS1
&lt;/pre&gt;

&lt;em&gt;(CH: Edited July 1, 2011 to adjust the ORDER BY columns per Kyle)&lt;/em&gt;]]></description>
		<content:encoded><![CDATA[<p>IMO Macin hit the nail on the head. ASH is good for counting and statistical approximation.<br />
I basically stay away from timings in ASH, though they can be of occasional use.<br />
I especially stay away from wait_time, which, as I understand it , should have been left out of ASH and is basically the basis for &#8220;On CPU&#8221; or &#8220;Waiting&#8221;.<br />
TIME_WAITED can be used but keep in mind, wait times will be skewed towards the longer waits as shorter waits will be caught less frequently.</p>
<p>If one is concerned with the top objects then look at the counts of waits on those objects. Waits on objects are only going to be instrumented for 3 types of waits AFAIK</p>
<p>io waits &#8211;  db file sequential read, db file scattered read\<br />
buffer busy waits<br />
enqueue tx waits</p>
<p>You also have to target not only the wait events, but actual waits as opposed to ASH rows that were for CPU but still have left over data in other columns from previous waits.<br />
For IO, you could do something like</p>
<pre>
select
       count(*) cnt,
       CURRENT_OBJ#||' '||o.object_name objn,
       o.object_type otype
from v$active_session_history ash,
      all_objects o
where ( event like 'db file s%' or event like 'direct%' )
   and o.object_id (+)= ash.CURRENT_OBJ#
   and sample_time &gt; sysdate - &amp;1/(60*24)
   and session_state='WAITING'
group by 
       CURRENT_OBJ#, o.object_name ,
       o.object_type 
Order by count(*)
</pre>
<p>giving something like</p>
<pre>
 CNT     AAS OBJN                     OTYPE
---- ------- ------------------------- ---------------
  79     .00 52949 ORDER_ITEMS         TABLE PARTITION
  97     .00 -1
 130     .00 53117 ORD_STATUS_IX       INDEX
 498     .01 53120 CUST_EMAIL_IX       INDEX
 512     .01 0
1632     .03 53112 ITEM_ORDER_IX       INDEX
</pre>
<p>For Object I/O by SQL how about</p>
<pre>
select
       round(sum(cnt) over ( partition by io.sql_id order by sql_id ) / (&amp;v_minutes*60),2) aas,
       io.sql_id,
       io.cnt cnt,
       100*cnt/sum(cnt) over ( partition by io.sql_id order by sql_id ) pct,
       o.object_name obj,
       o.subobject_name sub_obj,
       o.object_type otype,
       substr(io.event,8,10) event,
       io.p1 file#,
       f.tablespace_name tablespace_name,
       tbs.contents
from 
(
  select
        sql_id,
	event,
        count(*) cnt,
        count(*) / (&amp;v_minutes*60) aas,
        CURRENT_OBJ# ,
        ash.p1
   from v$active_session_history ash
   where ( event like 'db file s%' or event like 'direct%' )
      and sample_time &gt; sysdate - &amp;v_minutes/(60*24)
   group by 
       CURRENT_OBJ#, 
       event,
       ash.p1,
       sql_id
) io,
   dba_data_files f
   ,all_objects o
   , dba_tablespaces tbs
where
   f.file_id = io.p1
   and o.object_id (+)= io.CURRENT_OBJ#
   and tbs.tablespace_name= f.tablespace_name 
Order by  aas, sql_id, cnt
/

</pre>
<p>giving something like</p>
<pre>
 AAS SQL_ID           %  OBJ              TABLESPACE
----- -------------  ---  ---------------  ----------
  .18 0yas01u2p9ch4    6  ITEM_PRODUCT_IX  SOEINDEX
                       6  ORDER_ITEMS_UK   SOEINDEX 
                      88  ITEM_ORDER_IX    SOEINDEX
  .32 6v6gm0fd1rgrz    6  WAIT_OBJECTS     SYSTEM
                      94  UNDO             UNDOTBS1
</pre>
<p><em>(CH: Edited July 1, 2011 to adjust the ORDER BY columns per Kyle)</em></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Oracle</title>
		<link>http://hoopercharles.wordpress.com/2011/06/28/find-objects-with-the-greatest-wait-time-what-is-wrong-with-this-quote/#comment-3566</link>
		<dc:creator><![CDATA[Oracle]]></dc:creator>
		<pubDate>Wed, 29 Jun 2011 16:40:55 +0000</pubDate>
		<guid isPermaLink="false">http://hoopercharles.wordpress.com/?p=5076#comment-3566</guid>
		<description><![CDATA[THX!]]></description>
		<content:encoded><![CDATA[<p>THX!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Marcin Przepiorowski</title>
		<link>http://hoopercharles.wordpress.com/2011/06/28/find-objects-with-the-greatest-wait-time-what-is-wrong-with-this-quote/#comment-3565</link>
		<dc:creator><![CDATA[Marcin Przepiorowski]]></dc:creator>
		<pubDate>Wed, 29 Jun 2011 15:57:01 +0000</pubDate>
		<guid isPermaLink="false">http://hoopercharles.wordpress.com/?p=5076#comment-3565</guid>
		<description><![CDATA[Charles,

Yes, Graham Wood is one of God Fathers of ASH. Another one John Beresniewicz prepared nice paper as well - http://ashmasters.com/jb-zone/average-active-sessions/ - take a look on DB Time calculation based on ASH or take a look on Kyle&#039;s Hailey scripts http://ashmasters.com/ash-queries/

ASH is generating sample every second so if your session was locked for let say 10 s with any event event you will see 10 rows in ASH with same session_id and sql_id - of course we can&#039;t be sure if all samples are related to same execution of SQL_ID but from statistic perspective we can ignore it

select decode(session_state,&#039;WAITING&#039;,event,&#039;ON CPU&#039;), count(*) cnt from v$active_session_history where session_id = x and sample_time &gt; sysdate - 1/60/24 group by decode(session_state,&#039;WAITING&#039;,event,&#039;ON CPU&#039;) order by cnt

This query will show you most session utilization profile for last minute - wait time (cnt column) are not exact but if you will sample it for quite long period measure error related to sampling frequency will be decreasing over time.

regards,
Marcin]]></description>
		<content:encoded><![CDATA[<p>Charles,</p>
<p>Yes, Graham Wood is one of God Fathers of ASH. Another one John Beresniewicz prepared nice paper as well &#8211; <a href="http://ashmasters.com/jb-zone/average-active-sessions/" rel="nofollow">http://ashmasters.com/jb-zone/average-active-sessions/</a> &#8211; take a look on DB Time calculation based on ASH or take a look on Kyle&#8217;s Hailey scripts <a href="http://ashmasters.com/ash-queries/" rel="nofollow">http://ashmasters.com/ash-queries/</a></p>
<p>ASH is generating sample every second so if your session was locked for let say 10 s with any event event you will see 10 rows in ASH with same session_id and sql_id &#8211; of course we can&#8217;t be sure if all samples are related to same execution of SQL_ID but from statistic perspective we can ignore it</p>
<p>select decode(session_state,&#8217;WAITING&#8217;,event,&#8217;ON CPU&#8217;), count(*) cnt from v$active_session_history where session_id = x and sample_time &gt; sysdate &#8211; 1/60/24 group by decode(session_state,&#8217;WAITING&#8217;,event,&#8217;ON CPU&#8217;) order by cnt</p>
<p>This query will show you most session utilization profile for last minute &#8211; wait time (cnt column) are not exact but if you will sample it for quite long period measure error related to sampling frequency will be decreasing over time.</p>
<p>regards,<br />
Marcin</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Charles Hooper</title>
		<link>http://hoopercharles.wordpress.com/2011/06/28/find-objects-with-the-greatest-wait-time-what-is-wrong-with-this-quote/#comment-3563</link>
		<dc:creator><![CDATA[Charles Hooper]]></dc:creator>
		<pubDate>Wed, 29 Jun 2011 15:03:33 +0000</pubDate>
		<guid isPermaLink="false">http://hoopercharles.wordpress.com/?p=5076#comment-3563</guid>
		<description><![CDATA[Marcin,

Very interesting document that you linked to - if I remember correctly, the author of that document was also heavily involved in the development of ASH at Oracle Corp.  I probably learned a few things from reading that document.  A couple of items that stood out, which are related to this blog article:
Slide: &quot;ASH: Top IO SQL&quot;
Slide: &quot;ASH data gotcha’s&quot;: Beware of Obj#, File#, Block# (not cleared); Wait time vs Time waited
Slide: &quot;ASH: Bad SQL&quot;: select sum(a.time_waited) total_time
Slide: &quot;ASH: WAIT_TIME vs TIME_WAITED&quot;

The &quot;ASH: WAIT_TIME vs TIME_WAITED&quot; slide certainly explains the Excel screen captures that appear in the blog article (except for the unit of measure inconsistency).

Using COUNT rather than SUM... I should have thought of that, but then that is part of the reason why reader comments are requested for my blog articles :-)]]></description>
		<content:encoded><![CDATA[<p>Marcin,</p>
<p>Very interesting document that you linked to &#8211; if I remember correctly, the author of that document was also heavily involved in the development of ASH at Oracle Corp.  I probably learned a few things from reading that document.  A couple of items that stood out, which are related to this blog article:<br />
Slide: &#8220;ASH: Top IO SQL&#8221;<br />
Slide: &#8220;ASH data gotcha’s&#8221;: Beware of Obj#, File#, Block# (not cleared); Wait time vs Time waited<br />
Slide: &#8220;ASH: Bad SQL&#8221;: select sum(a.time_waited) total_time<br />
Slide: &#8220;ASH: WAIT_TIME vs TIME_WAITED&#8221;</p>
<p>The &#8220;ASH: WAIT_TIME vs TIME_WAITED&#8221; slide certainly explains the Excel screen captures that appear in the blog article (except for the unit of measure inconsistency).</p>
<p>Using COUNT rather than SUM&#8230; I should have thought of that, but then that is part of the reason why reader comments are requested for my blog articles <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
</channel>
</rss>
