<?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: Rolling Cursor Invalidation</title>
	<atom:link href="http://prutser.wordpress.com/2009/07/16/rolling-cursor-invalidation/feed/" rel="self" type="application/rss+xml" />
	<link>http://prutser.wordpress.com/2009/07/16/rolling-cursor-invalidation/</link>
	<description>By: Harald van Breederode</description>
	<lastBuildDate>Sat, 18 May 2013 15:01:01 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: Srinivas Reddy</title>
		<link>http://prutser.wordpress.com/2009/07/16/rolling-cursor-invalidation/#comment-713</link>
		<dc:creator><![CDATA[Srinivas Reddy]]></dc:creator>
		<pubDate>Fri, 22 Jun 2012 10:54:07 +0000</pubDate>
		<guid isPermaLink="false">http://prutser.wordpress.com/?p=384#comment-713</guid>
		<description><![CDATA[Thank you, very good to know.  I&#039;m searching google as one of my job failed with: CursorDiagnosticsNodes:
  ChildNode:  ChildNumber=22 ID=34 reason=Rolling Invalidate Window Exceeded

and here i found good info.]]></description>
		<content:encoded><![CDATA[<p>Thank you, very good to know.  I&#8217;m searching google as one of my job failed with: CursorDiagnosticsNodes:<br />
  ChildNode:  ChildNumber=22 ID=34 reason=Rolling Invalidate Window Exceeded</p>
<p>and here i found good info.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Book Review: Oracle Database 11g Performance Tuning Recipes (Part 2) &#171; Charles Hooper&#039;s Oracle Notes</title>
		<link>http://prutser.wordpress.com/2009/07/16/rolling-cursor-invalidation/#comment-600</link>
		<dc:creator><![CDATA[Book Review: Oracle Database 11g Performance Tuning Recipes (Part 2) &#171; Charles Hooper&#039;s Oracle Notes]]></dc:creator>
		<pubDate>Thu, 06 Oct 2011 06:07:03 +0000</pubDate>
		<guid isPermaLink="false">http://prutser.wordpress.com/?p=384#comment-600</guid>
		<description><![CDATA[[...] permitting already hard parsed SQL statements to not become immediately invalidated for a period up to 5 hours (thus the new statistics may not have any impact for 5 hours). (pages [...]]]></description>
		<content:encoded><![CDATA[<p>[...] permitting already hard parsed SQL statements to not become immediately invalidated for a period up to 5 hours (thus the new statistics may not have any impact for 5 hours). (pages [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Hemant K Chitale</title>
		<link>http://prutser.wordpress.com/2009/07/16/rolling-cursor-invalidation/#comment-574</link>
		<dc:creator><![CDATA[Hemant K Chitale]]></dc:creator>
		<pubDate>Mon, 16 May 2011 14:44:27 +0000</pubDate>
		<guid isPermaLink="false">http://prutser.wordpress.com/?p=384#comment-574</guid>
		<description><![CDATA[Yes, I am aware of the NO_INVALIDATE=&gt;FALSE.  
Oracle introduced &quot;delayed&quot; invalidation to prevent latch storms and very large rate of high parses in a busy database if a GATHER_SCHEMA_STATS is run.  Unfortunately, when doing a single table GATHER_TABLE_STATS, we would generally expect to invalidate SQLs against the table asap (else, why would we be gathering statistics when the database is busy ?).  However, this behaviour described by you makes invalidation unpredictable.  The DBA has to then realise that he should have added a NO_INVALIDATE=&gt;FALSE !
There are other ways to cause invalidation and reparsing on demand.
I was just commenting on the unpredictability of this automation.]]></description>
		<content:encoded><![CDATA[<p>Yes, I am aware of the NO_INVALIDATE=&gt;FALSE.<br />
Oracle introduced &#8220;delayed&#8221; invalidation to prevent latch storms and very large rate of high parses in a busy database if a GATHER_SCHEMA_STATS is run.  Unfortunately, when doing a single table GATHER_TABLE_STATS, we would generally expect to invalidate SQLs against the table asap (else, why would we be gathering statistics when the database is busy ?).  However, this behaviour described by you makes invalidation unpredictable.  The DBA has to then realise that he should have added a NO_INVALIDATE=&gt;FALSE !<br />
There are other ways to cause invalidation and reparsing on demand.<br />
I was just commenting on the unpredictability of this automation.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Harald van Breederode</title>
		<link>http://prutser.wordpress.com/2009/07/16/rolling-cursor-invalidation/#comment-573</link>
		<dc:creator><![CDATA[Harald van Breederode]]></dc:creator>
		<pubDate>Mon, 16 May 2011 12:54:58 +0000</pubDate>
		<guid isPermaLink="false">http://prutser.wordpress.com/?p=384#comment-573</guid>
		<description><![CDATA[Hi Hemant,

Remember that you can still have all cursors invalidated immediatly by setting the NO_INVALIDATE argument of DBMS_STATS to FALSE.
-Harald]]></description>
		<content:encoded><![CDATA[<p>Hi Hemant,</p>
<p>Remember that you can still have all cursors invalidated immediatly by setting the NO_INVALIDATE argument of DBMS_STATS to FALSE.<br />
-Harald</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Hemant K Chitale</title>
		<link>http://prutser.wordpress.com/2009/07/16/rolling-cursor-invalidation/#comment-570</link>
		<dc:creator><![CDATA[Hemant K Chitale]]></dc:creator>
		<pubDate>Mon, 16 May 2011 03:41:07 +0000</pubDate>
		<guid isPermaLink="false">http://prutser.wordpress.com/?p=384#comment-570</guid>
		<description><![CDATA[&gt;On the next execution of the query the Oracle server will generate a random number between 0 and the value of the _optimizer_invalidation_period parameter

Now that is very irritating.
a.  The random number isn&#039;t generated immediately after the GATHER_STATS.  So it is only the next execution that would generate the random number ?.  This can also mean that different statements against the same table would &quot;start&quot; their timers at different times. 
b.  The timer is set to a random number.  The DBA might as well tell his manager &quot;dark forces in the Universe control when a new cursor will be generated.&quot;.]]></description>
		<content:encoded><![CDATA[<p>&gt;On the next execution of the query the Oracle server will generate a random number between 0 and the value of the _optimizer_invalidation_period parameter</p>
<p>Now that is very irritating.<br />
a.  The random number isn&#8217;t generated immediately after the GATHER_STATS.  So it is only the next execution that would generate the random number ?.  This can also mean that different statements against the same table would &#8220;start&#8221; their timers at different times.<br />
b.  The timer is set to a random number.  The DBA might as well tell his manager &#8220;dark forces in the Universe control when a new cursor will be generated.&#8221;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: maclean</title>
		<link>http://prutser.wordpress.com/2009/07/16/rolling-cursor-invalidation/#comment-496</link>
		<dc:creator><![CDATA[maclean]]></dc:creator>
		<pubDate>Tue, 14 Sep 2010 13:51:06 +0000</pubDate>
		<guid isPermaLink="false">http://prutser.wordpress.com/?p=384#comment-496</guid>
		<description><![CDATA[I&#039;ve set _optimizer_invalidation_period as 1 , but another child cursor take about one minute to appear!
I think &quot;_optimizer_invalidation_period&quot; has a minimum limit .]]></description>
		<content:encoded><![CDATA[<p>I&#8217;ve set _optimizer_invalidation_period as 1 , but another child cursor take about one minute to appear!<br />
I think &#8220;_optimizer_invalidation_period&#8221; has a minimum limit .</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Martin Widlake</title>
		<link>http://prutser.wordpress.com/2009/07/16/rolling-cursor-invalidation/#comment-494</link>
		<dc:creator><![CDATA[Martin Widlake]]></dc:creator>
		<pubDate>Wed, 18 Aug 2010 09:50:06 +0000</pubDate>
		<guid isPermaLink="false">http://prutser.wordpress.com/?p=384#comment-494</guid>
		<description><![CDATA[Hi Sumit,

I think the answer is that you are not stating the value for NO_INVALIDATE and so it will default to AUTO. With AUTO, it seems that Oracle immediately invalidates dependent cursors if the stats gather was GATHER_TABLE_STATS or GATHER_INDEX_STATS. With schema or database wide gathers, Oracle invalidates the dependent cursors after the random delay.

Cheers,

Martin]]></description>
		<content:encoded><![CDATA[<p>Hi Sumit,</p>
<p>I think the answer is that you are not stating the value for NO_INVALIDATE and so it will default to AUTO. With AUTO, it seems that Oracle immediately invalidates dependent cursors if the stats gather was GATHER_TABLE_STATS or GATHER_INDEX_STATS. With schema or database wide gathers, Oracle invalidates the dependent cursors after the random delay.</p>
<p>Cheers,</p>
<p>Martin</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sumit</title>
		<link>http://prutser.wordpress.com/2009/07/16/rolling-cursor-invalidation/#comment-493</link>
		<dc:creator><![CDATA[Sumit]]></dc:creator>
		<pubDate>Wed, 18 Aug 2010 08:45:22 +0000</pubDate>
		<guid isPermaLink="false">http://prutser.wordpress.com/?p=384#comment-493</guid>
		<description><![CDATA[Thanks for the article.
  Its nice to read about the true of the hidden parameters.
  
  For 10g we gather stats for a table within a proc (dbms_stats.gather_table_stats (tabname=&gt;&#039;xyz&#039;,cascade=&gt;true);), which invalidates all the queries related to the table and infact we cannot see any details of the queries in any of the V$ views.
  What we are not able to get is if the parameter is set to 30 minutes , why does the queries immediately get invalidated and removed from the v$views.
    
  Though when is query is executed again we can see it in v$sql with loads and invalidations count incremented by 1.]]></description>
		<content:encoded><![CDATA[<p>Thanks for the article.<br />
  Its nice to read about the true of the hidden parameters.</p>
<p>  For 10g we gather stats for a table within a proc (dbms_stats.gather_table_stats (tabname=&gt;&#8217;xyz&#8217;,cascade=&gt;true);), which invalidates all the queries related to the table and infact we cannot see any details of the queries in any of the V$ views.<br />
  What we are not able to get is if the parameter is set to 30 minutes , why does the queries immediately get invalidated and removed from the v$views.</p>
<p>  Though when is query is executed again we can see it in v$sql with loads and invalidations count incremented by 1.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Srinivas Vaidya</title>
		<link>http://prutser.wordpress.com/2009/07/16/rolling-cursor-invalidation/#comment-204</link>
		<dc:creator><![CDATA[Srinivas Vaidya]]></dc:creator>
		<pubDate>Thu, 01 Oct 2009 11:09:23 +0000</pubDate>
		<guid isPermaLink="false">http://prutser.wordpress.com/?p=384#comment-204</guid>
		<description><![CDATA[Thanks for sharing your experience. I was in similar situation where my most executed sql statements (well tuned with sql profile) started having performance problems.

This article helped resolve the issue quickly.]]></description>
		<content:encoded><![CDATA[<p>Thanks for sharing your experience. I was in similar situation where my most executed sql statements (well tuned with sql profile) started having performance problems.</p>
<p>This article helped resolve the issue quickly.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joel Goodman</title>
		<link>http://prutser.wordpress.com/2009/07/16/rolling-cursor-invalidation/#comment-181</link>
		<dc:creator><![CDATA[Joel Goodman]]></dc:creator>
		<pubDate>Tue, 21 Jul 2009 07:59:18 +0000</pubDate>
		<guid isPermaLink="false">http://prutser.wordpress.com/?p=384#comment-181</guid>
		<description><![CDATA[Great post Harald - I enjoyed reading it.

Joel]]></description>
		<content:encoded><![CDATA[<p>Great post Harald &#8211; I enjoyed reading it.</p>
<p>Joel</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Log Buffer #154: a Carnival of the Vanities for DBAs &#124; Pythian Group Blog</title>
		<link>http://prutser.wordpress.com/2009/07/16/rolling-cursor-invalidation/#comment-177</link>
		<dc:creator><![CDATA[Log Buffer #154: a Carnival of the Vanities for DBAs &#124; Pythian Group Blog]]></dc:creator>
		<pubDate>Fri, 17 Jul 2009 17:02:00 +0000</pubDate>
		<guid isPermaLink="false">http://prutser.wordpress.com/?p=384#comment-177</guid>
		<description><![CDATA[[...] The Dutch Prutser’s Blog, Harald van Breederode gives a lesson in rolling cursor invalidation. He writes, &#8220;&#160;.&#160;.&#160;.&#160;I call DBMS_STATS to create a histogram and I [...]]]></description>
		<content:encoded><![CDATA[<p>[...] The Dutch Prutser’s Blog, Harald van Breederode gives a lesson in rolling cursor invalidation. He writes, &#8220;&nbsp;.&nbsp;.&nbsp;.&nbsp;I call DBMS_STATS to create a histogram and I [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Blogroll Report 10/07/2009 – 17/07/2009 &#171; Coskan&#8217;s Approach to Oracle</title>
		<link>http://prutser.wordpress.com/2009/07/16/rolling-cursor-invalidation/#comment-176</link>
		<dc:creator><![CDATA[Blogroll Report 10/07/2009 – 17/07/2009 &#171; Coskan&#8217;s Approach to Oracle]]></dc:creator>
		<pubDate>Fri, 17 Jul 2009 15:09:39 +0000</pubDate>
		<guid isPermaLink="false">http://prutser.wordpress.com/?p=384#comment-176</guid>
		<description><![CDATA[[...] Harald van Breederode &#8211; Rolling Cursor Invalidation [...]]]></description>
		<content:encoded><![CDATA[<p>[...] Harald van Breederode &#8211; Rolling Cursor Invalidation [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: coskan</title>
		<link>http://prutser.wordpress.com/2009/07/16/rolling-cursor-invalidation/#comment-175</link>
		<dc:creator><![CDATA[coskan]]></dc:creator>
		<pubDate>Fri, 17 Jul 2009 11:08:01 +0000</pubDate>
		<guid isPermaLink="false">http://prutser.wordpress.com/?p=384#comment-175</guid>
		<description><![CDATA[Thanks Martin,

I think fast reading when you were in rush, caused to miss &quot;,no_invalidate =&gt; false)&quot;  bit :)]]></description>
		<content:encoded><![CDATA[<p>Thanks Martin,</p>
<p>I think fast reading when you were in rush, caused to miss &#8220;,no_invalidate =&gt; false)&#8221;  bit :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bernard Polarski</title>
		<link>http://prutser.wordpress.com/2009/07/16/rolling-cursor-invalidation/#comment-174</link>
		<dc:creator><![CDATA[Bernard Polarski]]></dc:creator>
		<pubDate>Fri, 17 Jul 2009 07:43:02 +0000</pubDate>
		<guid isPermaLink="false">http://prutser.wordpress.com/?p=384#comment-174</guid>
		<description><![CDATA[Instructive contents and good presenting post, a pleasure to read.]]></description>
		<content:encoded><![CDATA[<p>Instructive contents and good presenting post, a pleasure to read.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aman Sharma</title>
		<link>http://prutser.wordpress.com/2009/07/16/rolling-cursor-invalidation/#comment-173</link>
		<dc:creator><![CDATA[Aman Sharma]]></dc:creator>
		<pubDate>Thu, 16 Jul 2009 18:41:31 +0000</pubDate>
		<guid isPermaLink="false">http://prutser.wordpress.com/?p=384#comment-173</guid>
		<description><![CDATA[Harald, 

Very nice and besides the fact that you quoted that &quot;things change without notice&quot; , it  also proves one more thing, there is always something new to learn. I didn&#039;t know this behavior at all. Much thanks for it.

regards
Aman....]]></description>
		<content:encoded><![CDATA[<p>Harald, </p>
<p>Very nice and besides the fact that you quoted that &#8220;things change without notice&#8221; , it  also proves one more thing, there is always something new to learn. I didn&#8217;t know this behavior at all. Much thanks for it.</p>
<p>regards<br />
Aman&#8230;.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
