<?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/"
		>
<channel>
	<title>Comments on: Oracle Troubleshooting with Snapper &#8211; detecting who&#8217;s causing excessive redo generation</title>
	<atom:link href="http://blog.tanelpoder.com/2008/05/30/oracle-troubleshooting-with-snapper-detecting-whos-causing-excessive-redo-generation/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.tanelpoder.com/2008/05/30/oracle-troubleshooting-with-snapper-detecting-whos-causing-excessive-redo-generation/</link>
	<description>Oracle troubleshooting, internals and performance tuning</description>
	<lastBuildDate>Thu, 11 Mar 2010 20:28:36 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Tanel Poder</title>
		<link>http://blog.tanelpoder.com/2008/05/30/oracle-troubleshooting-with-snapper-detecting-whos-causing-excessive-redo-generation/comment-page-1/#comment-2742</link>
		<dc:creator>Tanel Poder</dc:creator>
		<pubDate>Sun, 11 Oct 2009 11:24:36 +0000</pubDate>
		<guid isPermaLink="false">http://tanelpoder.wordpress.com/2008/05/30/oracle-troubleshooting-with-snapper-detecting-whos-causing-excessive-redo-generation/#comment-2742</guid>
		<description>Well if you describe V$LOGMNR_CONTENTS you see there&#039;s a session_id column in there, this gives you session info. And with something like ASH or manual v$session history you could see which dml statements these sessions did at the time. There is no direct way though to link redo generation to a SQL statement as Oracle doesn&#039;t measure redo generation by SQL statement.</description>
		<content:encoded><![CDATA[<p>Well if you describe V$LOGMNR_CONTENTS you see there&#8217;s a session_id column in there, this gives you session info. And with something like ASH or manual v$session history you could see which dml statements these sessions did at the time. There is no direct way though to link redo generation to a SQL statement as Oracle doesn&#8217;t measure redo generation by SQL statement.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dakshin</title>
		<link>http://blog.tanelpoder.com/2008/05/30/oracle-troubleshooting-with-snapper-detecting-whos-causing-excessive-redo-generation/comment-page-1/#comment-2737</link>
		<dc:creator>Dakshin</dc:creator>
		<pubDate>Sat, 10 Oct 2009 11:34:50 +0000</pubDate>
		<guid isPermaLink="false">http://tanelpoder.wordpress.com/2008/05/30/oracle-troubleshooting-with-snapper-detecting-whos-causing-excessive-redo-generation/#comment-2737</guid>
		<description>Thanks.  But how do I know which sessions / SQLs were causing more redo? Is it that I go through the whole day&#039;s transactions by txn id and try to gauge their impact ? (Mainly look at DML statements)</description>
		<content:encoded><![CDATA[<p>Thanks.  But how do I know which sessions / SQLs were causing more redo? Is it that I go through the whole day&#8217;s transactions by txn id and try to gauge their impact ? (Mainly look at DML statements)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Tanel Poder</title>
		<link>http://blog.tanelpoder.com/2008/05/30/oracle-troubleshooting-with-snapper-detecting-whos-causing-excessive-redo-generation/comment-page-1/#comment-2730</link>
		<dc:creator>Tanel Poder</dc:creator>
		<pubDate>Fri, 09 Oct 2009 15:35:36 +0000</pubDate>
		<guid isPermaLink="false">http://tanelpoder.wordpress.com/2008/05/30/oracle-troubleshooting-with-snapper-detecting-whos-causing-excessive-redo-generation/#comment-2730</guid>
		<description>Yes, you need to access the old archivelogs from past with LogMiner. Read the documentation about DBMS_LOGMNR and V$LOGMNR_CONTENTS</description>
		<content:encoded><![CDATA[<p>Yes, you need to access the old archivelogs from past with LogMiner. Read the documentation about DBMS_LOGMNR and V$LOGMNR_CONTENTS</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dakshin</title>
		<link>http://blog.tanelpoder.com/2008/05/30/oracle-troubleshooting-with-snapper-detecting-whos-causing-excessive-redo-generation/comment-page-1/#comment-2728</link>
		<dc:creator>Dakshin</dc:creator>
		<pubDate>Fri, 09 Oct 2009 09:48:24 +0000</pubDate>
		<guid isPermaLink="false">http://tanelpoder.wordpress.com/2008/05/30/oracle-troubleshooting-with-snapper-detecting-whos-causing-excessive-redo-generation/#comment-2728</guid>
		<description>Hi Tanel,

Is there a way to know why my DB was generating 3 times the &#039;normal&#039; redo 3 days back? Want to diagnose so that I can prevent, if possible, such occurrences in the future. Thanks.</description>
		<content:encoded><![CDATA[<p>Hi Tanel,</p>
<p>Is there a way to know why my DB was generating 3 times the &#8216;normal&#8217; redo 3 days back? Want to diagnose so that I can prevent, if possible, such occurrences in the future. Thanks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Oracle Session Snapper &#8211; real-time session-level performance stats for DBAs &#124; Tanel Poder's blog: Core IT for Geeks and Pros</title>
		<link>http://blog.tanelpoder.com/2008/05/30/oracle-troubleshooting-with-snapper-detecting-whos-causing-excessive-redo-generation/comment-page-1/#comment-2275</link>
		<dc:creator>Oracle Session Snapper &#8211; real-time session-level performance stats for DBAs &#124; Tanel Poder's blog: Core IT for Geeks and Pros</dc:creator>
		<pubDate>Tue, 11 Aug 2009 01:36:58 +0000</pubDate>
		<guid isPermaLink="false">http://tanelpoder.wordpress.com/2008/05/30/oracle-troubleshooting-with-snapper-detecting-whos-causing-excessive-redo-generation/#comment-2275</guid>
		<description>[...] http://blog.tanelpoder.com/2008/05/30/oracle-troubleshooting-with-snapper-detecting-whos-causing-exc... [...]</description>
		<content:encoded><![CDATA[<p>[...] <a href="http://blog.tanelpoder.com/2008/05/30/oracle-troubleshooting-with-snapper-detecting-whos-causing-exc.." rel="nofollow">http://blog.tanelpoder.com/2008/05/30/oracle-troubleshooting-with-snapper-detecting-whos-causing-exc..</a>. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: tanelp</title>
		<link>http://blog.tanelpoder.com/2008/05/30/oracle-troubleshooting-with-snapper-detecting-whos-causing-excessive-redo-generation/comment-page-1/#comment-349</link>
		<dc:creator>tanelp</dc:creator>
		<pubDate>Mon, 07 Jul 2008 08:16:03 +0000</pubDate>
		<guid isPermaLink="false">http://tanelpoder.wordpress.com/2008/05/30/oracle-troubleshooting-with-snapper-detecting-whos-causing-excessive-redo-generation/#comment-349</guid>
		<description>Snapper doesn&#039;t have this functionality for two reasons:

1) i haven&#039;t figured out an easy way to persist the snapshot information *without having to create any stored objects in db*

2) my Sesspack tool has this functionality and more..</description>
		<content:encoded><![CDATA[<p>Snapper doesn&#8217;t have this functionality for two reasons:</p>
<p>1) i haven&#8217;t figured out an easy way to persist the snapshot information *without having to create any stored objects in db*</p>
<p>2) my Sesspack tool has this functionality and more..</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: CJ</title>
		<link>http://blog.tanelpoder.com/2008/05/30/oracle-troubleshooting-with-snapper-detecting-whos-causing-excessive-redo-generation/comment-page-1/#comment-350</link>
		<dc:creator>CJ</dc:creator>
		<pubDate>Mon, 07 Jul 2008 08:08:13 +0000</pubDate>
		<guid isPermaLink="false">http://tanelpoder.wordpress.com/2008/05/30/oracle-troubleshooting-with-snapper-detecting-whos-causing-excessive-redo-generation/#comment-350</guid>
		<description>Hi Tanel,

Probably my earlier post didn&#039;t make sense. I will try to simplify the question I was asking:

Is it possible to use the snapper tool such that you generate a snapshot before starting the process, take another snapshot when the process ends and get the report on the changed stats?</description>
		<content:encoded><![CDATA[<p>Hi Tanel,</p>
<p>Probably my earlier post didn&#8217;t make sense. I will try to simplify the question I was asking:</p>
<p>Is it possible to use the snapper tool such that you generate a snapshot before starting the process, take another snapshot when the process ends and get the report on the changed stats?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: CJ</title>
		<link>http://blog.tanelpoder.com/2008/05/30/oracle-troubleshooting-with-snapper-detecting-whos-causing-excessive-redo-generation/comment-page-1/#comment-357</link>
		<dc:creator>CJ</dc:creator>
		<pubDate>Mon, 30 Jun 2008 17:49:54 +0000</pubDate>
		<guid isPermaLink="false">http://tanelpoder.wordpress.com/2008/05/30/oracle-troubleshooting-with-snapper-detecting-whos-causing-excessive-redo-generation/#comment-357</guid>
		<description>Hi Tanel,

First of all, congrats and thanks for a brilliant weblog and website.

The snapper tool is quite good, but I am finding it a bit &#039;different&#039;. I am used to using runstats, so it might just be a case of getting familiarized.

I open 2 SQL windows. I take snap session A from session B, and the run the problematic piece of code in session A. Once the code finishes, I take another snap in session A and print the deltas. This is normally good enough for me, and only in rare cases would I require more frequent snaps.

Right I don&#039;t think now you can get snapper to function in the above-mentioned way, but correct me if I am wrong.</description>
		<content:encoded><![CDATA[<p>Hi Tanel,</p>
<p>First of all, congrats and thanks for a brilliant weblog and website.</p>
<p>The snapper tool is quite good, but I am finding it a bit &#8216;different&#8217;. I am used to using runstats, so it might just be a case of getting familiarized.</p>
<p>I open 2 SQL windows. I take snap session A from session B, and the run the problematic piece of code in session A. Once the code finishes, I take another snap in session A and print the deltas. This is normally good enough for me, and only in rare cases would I require more frequent snaps.</p>
<p>Right I don&#8217;t think now you can get snapper to function in the above-mentioned way, but correct me if I am wrong.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chen Shapira</title>
		<link>http://blog.tanelpoder.com/2008/05/30/oracle-troubleshooting-with-snapper-detecting-whos-causing-excessive-redo-generation/comment-page-1/#comment-356</link>
		<dc:creator>Chen Shapira</dc:creator>
		<pubDate>Sun, 01 Jun 2008 04:52:40 +0000</pubDate>
		<guid isPermaLink="false">http://tanelpoder.wordpress.com/2008/05/30/oracle-troubleshooting-with-snapper-detecting-whos-causing-excessive-redo-generation/#comment-356</guid>
		<description>The main design goal is the reason you are getting comments on the weekend :)

Since you don&#039;t change anything, I feel reasonably comfortable running the new version on a production system on a weekend. I know that in worse case, I kill the session and everything is gone.

But it worked fine. Thanks again.</description>
		<content:encoded><![CDATA[<p>The main design goal is the reason you are getting comments on the weekend :)</p>
<p>Since you don&#8217;t change anything, I feel reasonably comfortable running the new version on a production system on a weekend. I know that in worse case, I kill the session and everything is gone.</p>
<p>But it worked fine. Thanks again.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: tanelp</title>
		<link>http://blog.tanelpoder.com/2008/05/30/oracle-troubleshooting-with-snapper-detecting-whos-causing-excessive-redo-generation/comment-page-1/#comment-355</link>
		<dc:creator>tanelp</dc:creator>
		<pubDate>Sun, 01 Jun 2008 03:57:41 +0000</pubDate>
		<guid isPermaLink="false">http://tanelpoder.wordpress.com/2008/05/30/oracle-troubleshooting-with-snapper-detecting-whos-causing-excessive-redo-generation/#comment-355</guid>
		<description>Yep, the main design goal of Snapper was that it should not require creating any database objects, or require any changes as matter of fact.

So, if I wanted to order in a single anonymous PL/SQL block (without having to create a TYPE object) then I&#039;d need to do it manually with some procedural sort algorithm.

Initially it was in my TODO list but by now I&#039;ve understood it&#039;s not that much needed, as:

1) ordering v$sesstat stats doesnt make sense, as every statistic represents a completely different thing (you can&#039;t compare redo size with parse count for example)

2) the number of different wait / time stats shown per session are is normally low enough for doing quick visual comparison

3) that&#039;s why snapper has such fixed output format - that you could easily paste it to Excel for post processing and further analysis :)

But yeah - in snapper code I have implemented a manual nested loop join, with full table scans on both &quot;tables&quot;. So it&#039;s not efficient at all but serves the purpose well and was simplest to implement!</description>
		<content:encoded><![CDATA[<p>Yep, the main design goal of Snapper was that it should not require creating any database objects, or require any changes as matter of fact.</p>
<p>So, if I wanted to order in a single anonymous PL/SQL block (without having to create a TYPE object) then I&#8217;d need to do it manually with some procedural sort algorithm.</p>
<p>Initially it was in my TODO list but by now I&#8217;ve understood it&#8217;s not that much needed, as:</p>
<p>1) ordering v$sesstat stats doesnt make sense, as every statistic represents a completely different thing (you can&#8217;t compare redo size with parse count for example)</p>
<p>2) the number of different wait / time stats shown per session are is normally low enough for doing quick visual comparison</p>
<p>3) that&#8217;s why snapper has such fixed output format &#8211; that you could easily paste it to Excel for post processing and further analysis :)</p>
<p>But yeah &#8211; in snapper code I have implemented a manual nested loop join, with full table scans on both &#8220;tables&#8221;. So it&#8217;s not efficient at all but serves the purpose well and was simplest to implement!</p>
]]></content:encoded>
	</item>
</channel>
</rss>
