<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tanel Poder's blog: Core IT for Geeks and Pros &#187; Performance</title>
	<atom:link href="http://blog.tanelpoder.com/category/performance/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.tanelpoder.com</link>
	<description>Oracle troubleshooting, internals and performance tuning</description>
	<lastBuildDate>Fri, 03 Sep 2010 08:46:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Exadata v2 Smart Scan Performance Troubleshooting article</title>
		<link>http://blog.tanelpoder.com/2010/07/30/exadata-v2-smart-scan-performance-troubleshooting-article/</link>
		<comments>http://blog.tanelpoder.com/2010/07/30/exadata-v2-smart-scan-performance-troubleshooting-article/#comments</comments>
		<pubDate>Fri, 30 Jul 2010 22:18:25 +0000</pubDate>
		<dc:creator>Tanel Poder</dc:creator>
				<category><![CDATA[Exadata]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Oracle 11gR2]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[Tuning]]></category>

		<guid isPermaLink="false">http://blog.tanelpoder.com/?p=727</guid>
		<description><![CDATA[I finally finished my first Exadata performance troubleshooting article. This explains one bug I did hit when stress testing an Exadata v2 box, which caused smart scan to go very slow &#8211; and how I troubleshooted it: Troubleshooting Exadata v2 Smart Scan Performance Thanks to my secret startup company I&#8217;ve been way too busy to [...]]]></description>
			<content:encoded><![CDATA[<p>I finally finished my first Exadata performance troubleshooting article.</p>
<p>This explains one bug I did hit when stress testing an Exadata v2 box, which caused smart scan to go very slow &#8211; and how I troubleshooted it:</p>
<ul>
<li><a href="http://blog.tanelpoder.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2guZTJzbi5jb20vb3JhY2xlL2V4YWRhdGEvcGVyZm9ybWFuY2UtdHJvdWJsZXNob290aW5nL2V4YWRhdGEtc21hcnQtc2Nhbi1wZXJmb3JtYW5jZQ==" target=\"_blank\">Troubleshooting Exadata v2 Smart Scan Performance</a></li>
</ul>
<p>Thanks to my secret startup company I&#8217;ve been way too busy to write anything serious lately, but apparently staying up until 6am helped this time! :-) Anyway, maybe next weekend I can repeat this and write Part 2 in the Exadata troubleshooting series ;-)</p>
<p>Enjoy! Comments are welcome to this blog entry as I haven&#8217;t figured out a good way to enable comments in the google sites page I&#8217;m using&#8230;</p>
<div class="facebook_like_button"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.tanelpoder.com%2F2010%2F07%2F30%2Fexadata-v2-smart-scan-performance-troubleshooting-article%2F&amp;layout=standard&amp;show-faces=true&amp;width=450&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="padding: 0px 0px; border:none; overflow:hidden; width:450px; height:70px;"></iframe></div> <img src="http://blog.tanelpoder.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=727" width="1" height="1" style="display: none;" /><p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.tanelpoder.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.tanelpoder.com/2010/07/30/exadata-v2-smart-scan-performance-troubleshooting-article/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Oracle memory troubleshooting article</title>
		<link>http://blog.tanelpoder.com/2010/05/28/oracle-memory-troubleshooting-article/</link>
		<comments>http://blog.tanelpoder.com/2010/05/28/oracle-memory-troubleshooting-article/#comments</comments>
		<pubDate>Fri, 28 May 2010 16:37:45 +0000</pubDate>
		<dc:creator>Tanel Poder</dc:creator>
				<category><![CDATA[Internals]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Troubleshooting]]></category>

		<guid isPermaLink="false">http://blog.tanelpoder.com/?p=694</guid>
		<description><![CDATA[Randolf Geist has written a good article about systematic troubleshooting of a PL/SQL memory allocation &#38; CPU utilization problem &#8211; and he has used some of my tools too! http://oracle-randolf.blogspot.com/2010/05/advanced-oracle-troubleshooting-session.html]]></description>
			<content:encoded><![CDATA[<p>Randolf Geist has written a good article about systematic troubleshooting of a PL/SQL memory allocation &amp; CPU utilization problem &#8211; and he has used some of my tools too!</p>
<p><a href="http://blog.tanelpoder.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL29yYWNsZS1yYW5kb2xmLmJsb2dzcG90LmNvbS8yMDEwLzA1L2FkdmFuY2VkLW9yYWNsZS10cm91Ymxlc2hvb3Rpbmctc2Vzc2lvbi5odG1s" target=\"_blank\">http://oracle-randolf.blogspot.com/2010/05/advanced-oracle-troubleshooting-session.html</a></p>
<div class="facebook_like_button"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.tanelpoder.com%2F2010%2F05%2F28%2Foracle-memory-troubleshooting-article%2F&amp;layout=standard&amp;show-faces=true&amp;width=450&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="padding: 0px 0px; border:none; overflow:hidden; width:450px; height:70px;"></iframe></div> <img src="http://blog.tanelpoder.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=694" width="1" height="1" style="display: none;" /><p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.tanelpoder.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.tanelpoder.com/2010/05/28/oracle-memory-troubleshooting-article/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>cursor: pin S waits, sporadic CPU spikes and systematic troubleshooting</title>
		<link>http://blog.tanelpoder.com/2010/04/21/cursor-pin-s-waits-sporadic-cpu-spikes-and-systematic-troubleshooting/</link>
		<comments>http://blog.tanelpoder.com/2010/04/21/cursor-pin-s-waits-sporadic-cpu-spikes-and-systematic-troubleshooting/#comments</comments>
		<pubDate>Wed, 21 Apr 2010 21:55:09 +0000</pubDate>
		<dc:creator>Tanel Poder</dc:creator>
				<category><![CDATA[Internals]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Oracle 11g]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[Unix/Linux]]></category>

		<guid isPermaLink="false">http://blog.tanelpoder.com/?p=673</guid>
		<description><![CDATA[I recently consulted one big telecom and helped to solve their sporadic performance problem which had troubled them for some months. It was an interesting case as it happened in the Oracle / OS touchpoint and it was a product of multiple &#8220;root causes&#8221;, not just one, an early Oracle mutex design bug and a [...]]]></description>
			<content:encoded><![CDATA[<p>I recently consulted one big telecom and helped to solve their sporadic performance problem which had troubled them for some months. It was an interesting case as it happened in the Oracle / OS touchpoint and it was a product of multiple &#8220;root causes&#8221;, not just one, an early Oracle mutex design bug and a Unix scheduling issue &#8211; that&#8217;s why it had been hard to resolve earlier despite multiple SRs opened etc.</p>
<p><a href="http://blog.tanelpoder.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL21hcnRpbm1leWVyLmJsb2dzcG90LmNvbS8=" target=\"_blank\">Martin Meyer</a>, their lead DBA, posted some info about the problem and technical details, so before going on, you should read his blog entry and read my comments below after this:</p>
<ul>
<li><a href="http://blog.tanelpoder.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL21hcnRpbm1leWVyLmJsb2dzcG90LmNvbS8yMDEwLzA0L2xvbmctd2FpdC10aW1lcy1mb3ItY3Vyc29yLXBpbi1zLWFuZC5odG1s" target=\"_blank\">http://martinmeyer.blogspot.com/2010/04/long-wait-times-for-cursor-pin-s-and.html</a></li>
</ul>
<p><strong>Problem:</strong></p>
<p>So, the problem was, that occasionally the critical application transactions which should have taken very short time in the database (&lt;1s), took 10-15 seconds or even longer and timed out.</p>
<p><strong>Symptoms:</strong></p>
<ol>
<li>When the problem happened, the CPU usage also jumped up to 100% for the problem duration (from few tens of seconds up to few minutes).</li>
<li>In AWR snapshots (taken every 20 minutes), the &#8220;cursor: pin S&#8221; popped into top TOP5 waits (around 5-10% of total instance wait time) and sometimes also &#8220;cursor: pin S wait on X&#8221; which is a different thing, also &#8220;latch: library cache&#8221; and interestingly &#8220;log file sync&#8221;. These waits had then much higher average wait times per wait occurrence than normal (tens or hundreds of milliseconds per wait, on average).</li>
<li>The V$EVENT_HISTOGRAM view showed lots of cursor: pin S waits taking very long time (over a second, some even 30+ seconds) and this certainly isn&#8217;t normal (Martin has these numbers in his blog entry)</li>
</ol>
<p>AWR and OS CPU usage measurement tools are system-wide tools (as opposed to session-wide tools).</p>
<p><strong>Troubleshooting:</strong></p>
<p><em>I can&#8217;t give you exact numbers or AWR data here, but will explain the flow of troubleshooting and reasoning.</em></p>
<ul>
<li>As the symptoms involved CPU usage spikes, I first checked whether there were perhaps<em> logon storms</em> going on due a bad application server configuration, where the app server suddenly decides to fire up hundreds of more connections at the same time (that happens quite often, so it&#8217;s a usual suspect when troubleshooting such issues). A logon storm can consume lots of CPU as all these new processes need to be started up in OS, they attach to SGA (syscalls, memory pagetable set-up operations) and eventually they need to find &amp; allocate memory from shared pool and initialize session structures. This all takes CPU.However the <em>logons cumulative</em> statistic in AWR didn&#8217;t go up almost at all during the 20 minute snapshot, so that ruled out a logon storm. As the number of sessions in the end of AWR snapshot (compared to the beginning of it) did not go down, this ruled out a <em>logoff</em> storm too (which also consumes CPU as now the exiting processes need to release their resources etc).</li>
</ul>
<ul>
<li>It&#8217;s worth mentioning that <em>log file sync</em> waits also went up by over an order of magnitude (IIRC from 1-2ms to 20-60 ms per wait) during the CPU spikes. However as <em>log file parallel write</em> times didn&#8217;t go up so radically, this indicated that the log file sync wait time was wasted somewhere else too &#8211; which is very likely going to be CPU scheduling latency (waiting on the CPU runqueue) when CPUs are busy.</li>
</ul>
<ul>
<li>As one of the waits which popped up during the problem was cursor: pin S, then I chcecked V$MUTEX_SLEEP_HISTORY and it did not show any specific cursor as a significant contention point (all contention recorded in that sleep history buffer was evenly spread across many different cursors), so that indicated to me that the problem was likely not related to a single cursor related issue (a bug or just too heavy usage of that cursor). Note that this view was not queried during the worst problem time, so there was a chance that some symptoms were not in there anymore (V$MUTEX_SLEEP_HISTORY is a circular buffer of few hundred last mutex sleeps).</li>
</ul>
<ul>
<li>So, we had CPU starvation and very long cursor: pin S waits popping up at the same time. cursor: pin S operation should happen really fast as it&#8217;s a very simple operation (few tens of instructions only) of marking the cursor&#8217;s mutex <em>in-flux </em>so its reference count could be bumped up for a shared mutex get.</li>
</ul>
<ul>
<li>Whenever you see CPU starvation (CPUs 100% busy and runqueues are long) <em>and </em>latch or mutex contention, then the CPU starvation should be resolved first, as the contention may just be a symptom of the CPU starvation. The problem is that if you get unlucky and a latch or mutex holder process is preempted and taken off CPU by the scheduler, the latch/mutex holder can&#8217;t release the latch before it gets back onto CPU to complete its operation! But OS doesn&#8217;t have a clue about this, as latches/mutexes are just Oracle&#8217;s memory structures in SGA. So the latch/mutex holder is off CPU and everyone else who gets onto CPU may want to take the same latch/mutex. They can&#8217;t get it and spin shortly in hope that the holder releases it in next few microseconds, which isn&#8217;t gonna happen in this case, as the latch/mutex holder is still off CPU!</li>
</ul>
<ul>
<li>And now comes a big difference between latches and mutexes in Oracle 10.2: When a latch getter can&#8217;t get the latch after spinning, it will go to sleep to release the CPU. Even if there are many latch getters in the CPU runqueue before the latch holder, they all spin quickly and end up sleeping again. But when a mutex getter doesn&#8217;t get the mutex after spinning, it will not go to sleep!!! It will yield() the CPU instead, which means that it will go to the end of runqueue and try to get back onto CPU as soon as possible. So, mutex getters in 10.2 are much less graceful, they can burn a lot of CPU when the mutex they want is held by someone else for long time.</li>
<li>But so what, if a mutex holder is preempted and taken off CPU by OS scheduler &#8211; it should get back onto CPU pretty fast, once it works its way through the CPU runqueue?</li>
</ul>
<ul>
<li>Well, yes IF all the processes in the system have the same priority.</li>
</ul>
<ul>
<li>This is where a second problem comes into play &#8211; Unix process priority decay. When a process eats a lot of CPU (and does little IO / voluntary sleeping) then the OS lowers that processes CPU scheduling priority so that other, less CPU hungry processes would still get their fair share of CPU (especially when coming back from an IO wait for example etc).</li>
</ul>
<ul>
<li>When a mutex holder has a lower priority than most other processes and is now taken off CPU, a thing called <em>priority inversion</em> happens. Even though other processes do have higher priority, they can not proceed, as the critical lock or resource they need, is already held by the other process with a lower priority who can&#8217;t complete its work as the &#8220;high priority&#8221; processes keep the CPUs busy.</li>
</ul>
<ul>
<li>In case of latches, the problem is not that bad as the latch getters go to sleep until they are posted when the latch is released by the holder process (I&#8217;ve written about it <a href="http://blog.tanelpoder.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2Jsb2cudGFuZWxwb2Rlci5jb20vMjAwOS8wMS8yMC9yZWxpYWJsZS1sYXRjaC13YWl0cy1hbmQtYS1uZXctYmxvZy8=" target=\"_blank\">here</a>). But the priority inversion takes a crazy turn in case of mutexes &#8211; as their getters don&#8217;t sleep (not even for a short time) by default, but yield the CPU and try to get back to it immediately and so on until they get the mutex. That can lead to huge CPU runqueue spikes, unresponsive systems and even hangs.</li>
</ul>
<ul>
<li>This is why starting from Oracle 11g the mutex getters do sleep instead of just yielding the CPU and also Oracle has backported the fix into Oracle 10.2.0.4, where a patch must be applied and where the <em>_first_spare_parameter</em> will specify the sleep duration in centiseconds.</li>
</ul>
<ul>
<li>So, knowing how mutexes worked in 10.2, all the symptoms led me to suspect this priority inversion problem, greatly amplified by how the mutex getters do never sleep by default. And we checked the effective priorities of all Oracle processes in the server, and we hit the jackpot &#8211; there was a number of processes with significantly lower priorities than all other processes had. And it takes only one process with low priority to cause all this trouble, just wait until it starts modifying a mutex and is preempted while doing this.</li>
</ul>
<ul>
<li>So, in order to fix both of the problems which amplified each other, we had to enable HPUX_SCHED_NOAGE Oracle parameter, to prevent priority decay of the processes and set the _first_spare_parameter to 10, which meant that default mutex sleep time will be 10 centiseconds (which is pretty long time in mutex/latching world, but better than crazily retrying without any sleeping at all). That way no process (the mutex holder) is pushed back and kept away from CPU for long periods of time.</li>
</ul>
<p>This was not a trivial problem, as it happened in Oracle / OS touchpoint and happened not because a single reason, but as a product of multiple separate reasons, amplifying each other.</p>
<p>There are few interesting, non-technical points here:</p>
<ol>
<li>When troubleshooting, don&#8217;t let performance tools like AWR (or any other tool!) tell you what your <em>problem</em> is! Your business, your users should tell you what the problem is and the tools should only be used for symptom drilldown (This is what <a href="http://blog.tanelpoder.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2NhcnltaWxsc2FwLmJsb2dzcG90LmNvbS8=" target=\"_blank\">Cary Millsap</a> has been constantly telling us). Note how I mentioned the problem and symptoms separately in the beginning of my post &#8211; and the problem was that some business transactions (systemwide) timed out because the database response time was 5-15 seconds!</li>
<li>The detail and scope of your performance data must have <em>at least </em>as good detail and scope of your performance problem!<br />
In other words, if your problem is measured in few seconds, then your performance data should also be sampled at least every few seconds in order to be fully systematic.</p>
<p>The classic issue in this case was that the 20 minute AWR reports still showed IO wait times as main DB time consumers, but that was averaged over 20 minutes. But our <em>problem</em> happened severely and shortly within few seconds in that 20 minutes, so the averaging and aggregation over long period of time did hide the extreme performance issue that happened in a very short time.</li>
</ol>
<p>Next time when it seems to be impossible to diagnose a problem and if the troubleshooting effort ends up going in circles, then you should ask, &#8220;what&#8217;s the real problem and who and how is experiencing it&#8221; and see if your performance data&#8217;s detail and scope matches that problem!</p>
<p>Oh, this is a good point to mention that in addition to my Advanced Oracle Troubleshooting/SQL Tuning <a href="http://blog.tanelpoder.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2guZTJzbi5jb20vb3JhY2xlLXRyYWluaW5nLXNlbWluYXJz">seminars</a> I also actually perform advanced Oracle troubleshooting <a href="http://blog.tanelpoder.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2Jsb2cudGFuZWxwb2Rlci5jb20vY29udGFjdC8=">consulting</a> too! I eat mutexes for breakfast ;-)</p>
<div class="facebook_like_button"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.tanelpoder.com%2F2010%2F04%2F21%2Fcursor-pin-s-waits-sporadic-cpu-spikes-and-systematic-troubleshooting%2F&amp;layout=standard&amp;show-faces=true&amp;width=450&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="padding: 0px 0px; border:none; overflow:hidden; width:450px; height:70px;"></iframe></div> <img src="http://blog.tanelpoder.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=673" width="1" height="1" style="display: none;" /><p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.tanelpoder.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.tanelpoder.com/2010/04/21/cursor-pin-s-waits-sporadic-cpu-spikes-and-systematic-troubleshooting/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Non-trivial performance problems</title>
		<link>http://blog.tanelpoder.com/2010/04/03/non-trivial-performance-problems/</link>
		<comments>http://blog.tanelpoder.com/2010/04/03/non-trivial-performance-problems/#comments</comments>
		<pubDate>Sat, 03 Apr 2010 10:07:26 +0000</pubDate>
		<dc:creator>Tanel Poder</dc:creator>
				<category><![CDATA[Administration]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[Tuning]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://blog.tanelpoder.com/?p=665</guid>
		<description><![CDATA[Gwen Shapira has written an article about a good example of a non-trivial performance problem. I&#8217;m not talking about anything advanced here (such as bugs or problems arising at OS/Oracle touchpoint) but that sometimes the root cause of a problem (or at least the reason why you notice this problem now) is not something deeply [...]]]></description>
			<content:encoded><![CDATA[<p>Gwen Shapira has written an article about a good example of a <a href="http://blog.tanelpoder.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3Byb2RsaWZlLndvcmRwcmVzcy5jb20vMjAxMC8wNC8wMi9kYXlsaWdodC1zYXZpbmctdGltZS1jYXVzZXMtcGVyZm9ybWFuY2UtaXNzdWVzLw==">non-trivial performance problem</a>.</p>
<p>I&#8217;m not talking about anything advanced here (such as bugs or problems arising at OS/Oracle touchpoint) but that sometimes the root cause of a problem (or at least the reason why you notice this problem now) is not something deeply technical or related to some specific SQL optimizer feature or a configuration issue. Instead of focusing on the first symptom you see immediately, it pays off to take a step back and see how the problem task/application/SQL is actually used by the users or client applications.</p>
<p>In other words, talk to the users, ask how exactly they experience the problem and then drill down from there.</p>
<div class="facebook_like_button"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.tanelpoder.com%2F2010%2F04%2F03%2Fnon-trivial-performance-problems%2F&amp;layout=standard&amp;show-faces=true&amp;width=450&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="padding: 0px 0px; border:none; overflow:hidden; width:450px; height:70px;"></iframe></div> <img src="http://blog.tanelpoder.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=665" width="1" height="1" style="display: none;" /><p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.tanelpoder.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.tanelpoder.com/2010/04/03/non-trivial-performance-problems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle Latch Contention Troubleshooting</title>
		<link>http://blog.tanelpoder.com/2010/03/27/oracle-latch-contention-troubleshooting/</link>
		<comments>http://blog.tanelpoder.com/2010/03/27/oracle-latch-contention-troubleshooting/#comments</comments>
		<pubDate>Sun, 28 Mar 2010 04:46:08 +0000</pubDate>
		<dc:creator>Tanel Poder</dc:creator>
				<category><![CDATA[Cool stuff]]></category>
		<category><![CDATA[Internals]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[Tuning]]></category>
		<category><![CDATA[contention]]></category>
		<category><![CDATA[latch]]></category>
		<category><![CDATA[method]]></category>
		<category><![CDATA[scripts]]></category>
		<category><![CDATA[systematic]]></category>

		<guid isPermaLink="false">http://blog.tanelpoder.com/?p=658</guid>
		<description><![CDATA[I wrote a latch contention troubleshooting article for IOUG Select journal last year (it was published earlier this year). I have uploaded this to tech.E2SN too, I recommend you to read it if you want to become systematic about latch contention troubleshooting: http://tech.e2sn.com/oracle/troubleshooting I&#8217;m working on getting the commenting &#038; feedback work at tech.E2SN site [...]]]></description>
			<content:encoded><![CDATA[<p>I wrote a latch contention troubleshooting article for IOUG Select journal last year (it was published earlier this year). I have uploaded this to tech.E2SN too, I recommend you to read it if you want to become systematic about latch contention troubleshooting:</p>
<p><a href="http://blog.tanelpoder.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2guZTJzbi5jb20vb3JhY2xlL3Ryb3VibGVzaG9vdGluZw==">http://tech.e2sn.com/oracle/troubleshooting</a></p>
<p>I&#8217;m working on getting the commenting &#038; feedback work at tech.E2SN site too, but for now you can comment here at this blog entry&#8230;</p>
<div class="facebook_like_button"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.tanelpoder.com%2F2010%2F03%2F27%2Foracle-latch-contention-troubleshooting%2F&amp;layout=standard&amp;show-faces=true&amp;width=450&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="padding: 0px 0px; border:none; overflow:hidden; width:450px; height:70px;"></iframe></div> <img src="http://blog.tanelpoder.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=658" width="1" height="1" style="display: none;" /><p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.tanelpoder.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.tanelpoder.com/2010/03/27/oracle-latch-contention-troubleshooting/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Oracle Session Snapper v3.10</title>
		<link>http://blog.tanelpoder.com/2010/03/22/oracle-session-snapper-v3-10/</link>
		<comments>http://blog.tanelpoder.com/2010/03/22/oracle-session-snapper-v3-10/#comments</comments>
		<pubDate>Mon, 22 Mar 2010 16:35:50 +0000</pubDate>
		<dc:creator>Tanel Poder</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[Tuning]]></category>

		<guid isPermaLink="false">http://blog.tanelpoder.com/?p=639</guid>
		<description><![CDATA[Hi all, long time no see!  =8-) Now as I&#8217;m done with the awesome Hotsos Symposium (and the training day which I delivered) and have got some rest, I&#8217;ll start publishing some of the cool things I&#8217;ve been working on over the past half a year or so. The first is Oracle Session Snapper version [...]]]></description>
			<content:encoded><![CDATA[<p>Hi all, long time no see!  =8-)</p>
<p>Now as I&#8217;m done with the awesome Hotsos Symposium (and the training day which I delivered) and have got some rest, I&#8217;ll start publishing some of the cool things I&#8217;ve been working on over the past half a year or so.</p>
<p>The first is Oracle Session Snapper version 3!</p>
<p>There are some major improvements in Snapper 3, like ASH style session activity sampling!</p>
<p>When you troubleshoot a session&#8217;s performance (or instance performance) then the main things you want to know first are very very simple:</p>
<ol>
<li>Which SQL statements are being executed</li>
<li>What are they doing, are they working on CPU or waiting.</li>
<li>If waiting, then for what</li>
</ol>
<p>Often this is enough for troubleshooting what&#8217;s wrong. For example, if a session is waiting for a lock, then wait interface will show you that. If a single SQL statement is taking 99% of total response time, the V$SESSION (ASH style) samples will point out the problem SQL and so on. Simple stuff.</p>
<p>However there are cases where you need to go beyond wait interface and use V$SESSTAT (and other) counters and even take a &#8220;screwdriver&#8221; and open Oracle up from outside by stack tracing :-)</p>
<p>When I wrote the first version of Snapper for my own use some 4-5 years ago I wrote it mainly having the &#8220;beyond wait interface&#8221; part in mind. So I focused on V$SESSTAT and various other counters and left the basic troubleshooting to other tools. I used to manually sample V$SESSION/V$SESSION_WAIT a few times in a row to get a rough overview of what a session was doing or some other special-purpose scripts.</p>
<p>However after Snapper got more popular and I started getting some feedback about it I saw the need for covering more with Snapper, not just the &#8220;beyond wait interface&#8221; part, but also the &#8220;wait interface&#8221; and &#8220;which SQL&#8221; part too.</p>
<p>So, now I&#8217;m presenting Snapper v3 which does all the 3 points above using ASH style V$SESSION sampling and it still has the first step to &#8220;beyond wait interface&#8221; part in it, which is very useful for advanced performance troubleshooting and diagnosis &#8211; I&#8217;m talking about the V$SESSTAT counters above.</p>
<p>I&#8217;ve made some syntax changes in Snapper too and right now the v3 doesn&#8217;t work on Oracle 9.2 (it will work some day :)</p>
<p>To give you an idea of the new ASH style sampling capabilities, heres some example output:</p>
<pre>SQL&gt; @snapper ash=sid+event+wait_class,ash1=plsql_object_id+plsql_subprogram_id+sql_id,ash2=program+module+action 5 1 all
<div id="_mcePaste">Sampling...</div>
<div id="_mcePaste">-- Session Snapper v3.10 by Tanel Poder @ E2SN ( http://tech.e2sn.com )

--------------------------------------------------------------</div>
<div id="_mcePaste">Active% |    SID | EVENT                     | WAIT_CLASS</div>
<div id="_mcePaste">--------------------------------------------------------------
   100% |    133 | db file scattered read    | User I/O
     5% |    165 | control file parallel wri | System I/O
     2% |    162 | ON CPU                    | ON CPU
     2% |    167 | db file parallel write    | System I/O
     2% |    166 | log file parallel write   | System I/O</div>
<div id="_mcePaste">
---------------------------------------------------
Active% | PLSQL_OBJE | PLSQL_SUBP | SQL_ID
---------------------------------------------------
    77% |            |            | a5xyjp9gt796s
    23% |            |            | 4g4u44bk830ms
    12% |            |            |</div>
<div id="_mcePaste">-------------------------------------------------------------------------------------------
Active% | PROGRAM                   | MODULE                    | ACTION
-------------------------------------------------------------------------------------------
100% | sqlplus@mac01 (TNS V1-V3) | sqlplus@mac01 (TNS V1-V3) |
  5% | oracle@solaris02 (CKPT)   |                           |
  2% | oracle@solaris02 (DBW0)   |                           |
  2% | oracle@solaris02 (CJQ0)   |                           |
  2% | oracle@solaris02 (LGWR)   |                           |

--  End of ASH snap 1, end=2010-03-22 17:35:06, seconds=5, samples_taken=43</div>

<span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: medium;"><span style="line-height: 22px; white-space: normal;"><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace;"><span style="line-height: 25px; white-space: pre;">
</span></span></span></span></pre>
<p>You can read some usage examples and download it here:</p>
<ul>
<li><a href="http://blog.tanelpoder.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2guZTJzbi5jb20vb3JhY2xlLXNjcmlwdHMtYW5kLXRvb2xzL3Nlc3Npb24tc25hcHBlcg==" target=\"_blank\">http://tech.e2sn.com/oracle-scripts-and-tools/session-snapper</a></li>
</ul>
<p>P.S. People who attended Hotsos Symposium Training Day where I demoed the initial version of Snapper v3 &#8211; download the new version from above link (v3.10), it&#8217;s much more flexible than the one I demoed couple of weeks ago!</p>
<p><span style="color: #ff0000;"><strong><span style="font-family: monospace; color: #000000;"><span style="font-weight: normal;"><br />
</span></span></strong></span></p>
<div class="facebook_like_button"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.tanelpoder.com%2F2010%2F03%2F22%2Foracle-session-snapper-v3-10%2F&amp;layout=standard&amp;show-faces=true&amp;width=450&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="padding: 0px 0px; border:none; overflow:hidden; width:450px; height:70px;"></iframe></div> <img src="http://blog.tanelpoder.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=639" width="1" height="1" style="display: none;" /><p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.tanelpoder.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.tanelpoder.com/2010/03/22/oracle-session-snapper-v3-10/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>A Free afternoon seminar in Singapore (24th Feb)</title>
		<link>http://blog.tanelpoder.com/2010/02/17/a-free-afternoon-seminar-in-singapore-24th-feb/</link>
		<comments>http://blog.tanelpoder.com/2010/02/17/a-free-afternoon-seminar-in-singapore-24th-feb/#comments</comments>
		<pubDate>Wed, 17 Feb 2010 09:10:49 +0000</pubDate>
		<dc:creator>Tanel Poder</dc:creator>
				<category><![CDATA[Cool stuff]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[Tuning]]></category>

		<guid isPermaLink="false">http://blog.tanelpoder.com/?p=625</guid>
		<description><![CDATA[If you are in Singapore and have 24th Feb afternoon available then you can register and join a free Oracle performance troubleshooting seminar I&#8217;m doing in Singapore Management University&#8217;s (SMU) campus. The seminar will be about: Systematic Oracle Performance Troubleshooting Identifying performance troublemakers Understanding execution plans The date is Wednesday, 24th Feb The seminar time [...]]]></description>
			<content:encoded><![CDATA[<p>If you are in Singapore and have 24th Feb afternoon available then you can register and join a free Oracle performance troubleshooting seminar I&#8217;m doing in Singapore Management University&#8217;s (SMU) campus.</p>
<p>The seminar will be about:</p>
<ul>
<li>Systematic Oracle Performance Troubleshooting</li>
<li>Identifying performance troublemakers</li>
<li>Understanding execution plans</li>
</ul>
<p>The date is Wednesday, 24th Feb</p>
<p>The seminar time is from 15:30-19:00 (don&#8217;t be late)</p>
<p>Registration and more details are here:</p>
<ul>
<li><a href="http://blog.tanelpoder.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2guZTJzbi5jb20vZXZlbnRzL3NpbmdhcG9yZS1vcmFjbGUtbWVldHVwLw==" target=\"_blank\">http://tech.e2sn.com/events/singapore-oracle-meetup/</a></li>
</ul>
<div class="facebook_like_button"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.tanelpoder.com%2F2010%2F02%2F17%2Fa-free-afternoon-seminar-in-singapore-24th-feb%2F&amp;layout=standard&amp;show-faces=true&amp;width=450&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="padding: 0px 0px; border:none; overflow:hidden; width:450px; height:70px;"></iframe></div> <img src="http://blog.tanelpoder.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=625" width="1" height="1" style="display: none;" /><p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.tanelpoder.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.tanelpoder.com/2010/02/17/a-free-afternoon-seminar-in-singapore-24th-feb/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>New versions of LatchProf and LatchProfX for latch contention troubleshooting and tuning</title>
		<link>http://blog.tanelpoder.com/2010/02/15/new-versions-of-latchprof-and-latchprofx-for-latch-contention-troubleshooting-and-tuning/</link>
		<comments>http://blog.tanelpoder.com/2010/02/15/new-versions-of-latchprof-and-latchprofx-for-latch-contention-troubleshooting-and-tuning/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 03:01:51 +0000</pubDate>
		<dc:creator>Tanel Poder</dc:creator>
				<category><![CDATA[Administration]]></category>
		<category><![CDATA[Cool stuff]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Troubleshooting]]></category>

		<guid isPermaLink="false">http://blog.tanelpoder.com/?p=620</guid>
		<description><![CDATA[The LatchProf and LatchProfX scripts allow you to be more systematic with latch contention troubleshooting and tuning. No more guesswork is needed as these scripts give you exact session IDs and in this version also SQLIDs of the troublemaking applications. You can download the new versions here: LatchProf (reads V$ views) LatchProfX (reads X$ tables, [...]]]></description>
			<content:encoded><![CDATA[<p>The LatchProf and LatchProfX scripts allow you to be more systematic with latch contention troubleshooting and tuning. No more guesswork is needed as these scripts give you exact session IDs and in this version also SQLIDs of the troublemaking applications.</p>
<p>You can download the new versions here:</p>
<ul>
<li><a href="http://blog.tanelpoder.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy50YW5lbHBvZGVyLmNvbS9maWxlcy9zY3JpcHRzL2xhdGNocHJvZi5zcWw=" target=\"_blank\">LatchProf</a> (reads V$ views)</li>
<li><a href="http://blog.tanelpoder.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy50YW5lbHBvZGVyLmNvbS9maWxlcy9zY3JpcHRzL2xhdGNocHJvZnguc3Fs" target=\"_blank\">LatchProfX</a> (reads X$ tables, but gives better info, run as SYS)</li>
</ul>
<p>Example output (with SQLID info) is below:</p>
<pre class="brush: plain;">SQL&gt; @latchprof name,sid,sqlid % % 100000

-- LatchProf 1.21 by Tanel Poder ( http://www.tanelpoder.com )

NAME                                       SID SQLID               Held       Gets  Held %     Held ms Avg hold ms
----------------------------------- ---------- ------------- ---------- ---------- ------- ----------- -----------
cache buffers chains                       133 3jbwa65aqmkvm        349        348     .35      14.169        .041
simulator lru latch                        133 3jbwa65aqmkvm         51         51     .05       2.071        .041
row cache objects                          133 3jbwa65aqmkvm          5          5     .01        .203        .041
cache buffers chains                        24                        5          5     .01        .203        .041
cache buffers chains                       149 3jbwa65aqmkvm          3          3     .00        .122        .041
resmgr group change latch                   33 147a57cxq3w5y          2          2     .00        .081        .041
cache buffers chains                         9 5raw2bzx227wp          2          1     .00        .081        .081
In memory undo latch                       149 f3y38zthh270n          2          1     .00        .081        .081
active checkpoint queue latch                5                        2          1     .00        .081        .081
cache buffers chains                       149 75621g9y3xmvd          2          2     .00        .081        .041
cache buffers chains                         9 gvgdv2v90wfa7          2          2     .00        .081        .041
cache buffers chains                        33 75621g9y3xmvd          2          2     .00        .081        .041
checkpoint queue latch                       5                        1          1     .00        .041        .041
ksuosstats global area                       8                        1          1     .00        .041        .041
cache buffers lru chain                    133 3jbwa65aqmkvm          1          1     .00        .041        .041
multiblock read objects                    155 75ju2gn3s8009          1          1     .00        .041        .041
resmgr group change latch                    9 0w2qpuc6u2zsp          1          1     .00        .041        .041
resmgr group change latch                   33 apgb2g9q2zjh1          1          1     .00        .041        .041
resmgr group change latch                  133 apgb2g9q2zjh1          1          1     .00        .041        .041
space background task latch                 17                        1          1     .00        .041        .041
cache buffers chains                       149 5raw2bzx227wp          1          1     .00        .041        .041
cache buffers chains                        33 5raw2bzx227wp          1          1     .00        .041        .041
cache buffers chains                        33 05s4vdwsf5802          1          1     .00        .041        .041
cache buffers chains                        31 0yas01u2p9ch4          1          1     .00        .041        .041
cache buffers chains                         9 41zu158rqf4kf          1          1     .00        .041        .041
In memory undo latch                        33 0bzhqhhj9mpaa          1          1     .00        .041        .041
In memory undo latch                        31 gvgdv2v90wfa7          1          1     .00        .041        .041
In memory undo latch                         9 gvgdv2v90wfa7          1          1     .00        .041        .041
simulator lru latch                        149 3jbwa65aqmkvm          1          1     .00        .041        .041
row cache objects                          133 5yq51dtyc6qf2          1          1     .00        .041        .041
SQL memory manager workarea list la        133 3jbwa65aqmkvm          1          1     .00        .041        .041
enqueues                                   141                        1          1     .00        .041        .041
row cache objects                          132                        1          1     .00        .041        .041

33 rows selected.
</pre>
<p>LatchProf scripts allow you to easily identify which session and SQLID (or sqlhash in 9i) cause the latch(es) to be held the most.</p>
<p>Let&#8217;s check what&#8217;s the most &#8220;latch-holding&#8221; SQL reported by LatchProf:</p>
<pre class="brush: sql;">SQL&gt; @sqlid 3jbwa65aqmkvm

HASH_VALUE  CH# SQL_TEXT
---------- ---- ------------------------------------------------------------------------------------------------------------------------------------------------------
1432996723    0 SELECT O.ORDER_ID, LINE_ITEM_ID, PRODUCT_ID, UNIT_PRICE, QUANTITY, ORDER_MODE, ORDER_STATUS, ORDER_TOTAL, SALES_REP_ID, PROMOTION_ID, C.CUSTOMER_ID,
 CUST_FIRST_NAME, CUST_LAST_NAME, CREDIT_LIMIT, CUST_EMAIL, ORDER_DATE FROM ORDERS O , ORDER_ITEMS OI, CUSTOMERS C WHERE O.ORDER_ID = OI.ORDER_ID AND
 O.CUSTOMER_ID = C.CUSTOMER_ID AND O.ORDER_STATUS &lt;= 4
</pre>
<p>If you want to read more about the capabilities of LatchProf and LatchProfX, go here:</p>
<ul>
<li><a href="http://blog.tanelpoder.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2Jsb2cudGFuZWxwb2Rlci5jb20vMjAwOC8wNy8wOS9hZHZhbmNlZC1vcmFjbGUtdHJvdWJsZXNob290aW5nLWd1aWRlLXBhcnQtNy1zYW1wbGluZy1sYXRjaC1ob2xkZXItc3RhdGlzdGljcy11c2luZy1sYXRjaHByb2Yv">http://blog.tanelpoder.com/2008/07/09/advanced-oracle-troubleshooting-guide-part-7-sampling-latch-holder-statistics-using-latchprof/</a></li>
<li><a href="http://blog.tanelpoder.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2Jsb2cudGFuZWxwb2Rlci5jb20vMjAwOC8wNy8yMy9hZHZhbmNlZC1vcmFjbGUtdHJvdWJsZXNob290aW5nLWd1aWRlLXBhcnQtOC1ldmVuLW1vcmUtZGV0YWlsZWQtbGF0Y2gtdHJvdWJsZXNob290aW5nLXVzaW5nLWxhdGNocHJvZngv">http://blog.tanelpoder.com/2008/07/23/advanced-oracle-troubleshooting-guide-part-8-even-more-detailed-latch-troubleshooting-using-latchprofx/</a></li>
</ul>
<p>Note that the latest version (v1.21) also fixes a problem with Oracle 11.2 where the script execution plan order was wrong, causing the sampling to not happen in correct order. I added a NO_TRANSFORM_DISTINCT_AGG hint to disable a new transformation happening in 11.2 to make the scripts behave correctly&#8230;</p>
<div class="facebook_like_button"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.tanelpoder.com%2F2010%2F02%2F15%2Fnew-versions-of-latchprof-and-latchprofx-for-latch-contention-troubleshooting-and-tuning%2F&amp;layout=standard&amp;show-faces=true&amp;width=450&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="padding: 0px 0px; border:none; overflow:hidden; width:450px; height:70px;"></iframe></div> <img src="http://blog.tanelpoder.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=620" width="1" height="1" style="display: none;" /><p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.tanelpoder.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.tanelpoder.com/2010/02/15/new-versions-of-latchprof-and-latchprofx-for-latch-contention-troubleshooting-and-tuning/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Oracle Wait Event reference</title>
		<link>http://blog.tanelpoder.com/2010/02/09/oracle-wait-event-reference/</link>
		<comments>http://blog.tanelpoder.com/2010/02/09/oracle-wait-event-reference/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 10:35:57 +0000</pubDate>
		<dc:creator>Tanel Poder</dc:creator>
				<category><![CDATA[Cool stuff]]></category>
		<category><![CDATA[Internals]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Tuning]]></category>

		<guid isPermaLink="false">http://blog.tanelpoder.com/?p=601</guid>
		<description><![CDATA[Kyle Hailey has started putting together a much needed Oracle wait event reference. You can access it here. By the way, Oracle documentation also has a wait event reference section, it has more events, but it&#8217;s less detailed&#8230; I have plans to go deep into some wait events and cover some less common ones in [...]]]></description>
			<content:encoded><![CDATA[<p>Kyle Hailey has started putting together a much needed Oracle wait event reference.</p>
<p>You can access it <a href="http://blog.tanelpoder.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3NpdGVzLmdvb2dsZS5jb20vc2l0ZS9lbWJ0ZGJvL3dhaXQtZXZlbnQtZG9jdW1lbnRhdGlvbg==" target=\"_blank\">here</a>.</p>
<p>By the way, Oracle documentation also has a <a href="http://blog.tanelpoder.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2Rvd25sb2FkLm9yYWNsZS5jb20vZG9jcy9jZC9FMTE4ODJfMDEvc2VydmVyLjExMi9lMTA4MjAvd2FpdGV2ZW50cy5odG0=" target=\"_blank\">wait event reference section</a>, it has more events, but it&#8217;s less detailed&#8230;</p>
<p>I have plans to go deep into some wait events and cover some less common ones in <a href="http://blog.tanelpoder.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2guZTJzbi5jb20=" target=\"_blank\">tech.E2SN</a> too&#8230; in the future ;-)</p>
<div class="facebook_like_button"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.tanelpoder.com%2F2010%2F02%2F09%2Foracle-wait-event-reference%2F&amp;layout=standard&amp;show-faces=true&amp;width=450&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="padding: 0px 0px; border:none; overflow:hidden; width:450px; height:70px;"></iframe></div> <img src="http://blog.tanelpoder.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=601" width="1" height="1" style="display: none;" /><p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.tanelpoder.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.tanelpoder.com/2010/02/09/oracle-wait-event-reference/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Oracle Peformance Visualization&#8230;</title>
		<link>http://blog.tanelpoder.com/2010/02/03/oracle-peformance-visualization/</link>
		<comments>http://blog.tanelpoder.com/2010/02/03/oracle-peformance-visualization/#comments</comments>
		<pubDate>Wed, 03 Feb 2010 09:47:42 +0000</pubDate>
		<dc:creator>Tanel Poder</dc:creator>
				<category><![CDATA[Cool stuff]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://blog.tanelpoder.com/?p=598</guid>
		<description><![CDATA[Coskan Gundogar and Karl Arao have written two interesting articles about Oracle performance analysis and visualization, check these out! Coskan&#8217;s article: http://coskan.wordpress.com/2010/01/27/working-with-statspack-part-1a-diagnosis/ Karl&#8217;s article: http://karlarao.wordpress.com/2010/01/31/workload-characterization-using-dba_hist-tables-and-ksar/ Note that in March I will be releasing PerfSheet v3.0, which will have lots of improvements! ;-)]]></description>
			<content:encoded><![CDATA[<p>Coskan Gundogar and Karl Arao have written two interesting articles about Oracle performance analysis and visualization, check these out!</p>
<p>Coskan&#8217;s article:</p>
<ul>
<li><a href="http://blog.tanelpoder.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2Nvc2thbi53b3JkcHJlc3MuY29tLzIwMTAvMDEvMjcvd29ya2luZy13aXRoLXN0YXRzcGFjay1wYXJ0LTFhLWRpYWdub3Npcy8=">http://coskan.wordpress.com/2010/01/27/working-with-statspack-part-1a-diagnosis/</a></li>
</ul>
<p>Karl&#8217;s article:</p>
<ul>
<li><a href="http://blog.tanelpoder.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2thcmxhcmFvLndvcmRwcmVzcy5jb20vMjAxMC8wMS8zMS93b3JrbG9hZC1jaGFyYWN0ZXJpemF0aW9uLXVzaW5nLWRiYV9oaXN0LXRhYmxlcy1hbmQta3Nhci8=" target=\"_blank\">http://karlarao.wordpress.com/2010/01/31/workload-characterization-using-dba_hist-tables-and-ksar/</a></li>
</ul>
<p>Note that in March I will be releasing <a href="http://blog.tanelpoder.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2Jsb2cudGFuZWxwb2Rlci5jb20vMjAwOC8xMi8yOC9wZXJmb3JtYW5jZS12aXN1YWxpemF0aW9uLW1hZGUtZWFzeS1wZXJmc2hlZXQtMjAtYmV0YS8=">PerfSheet</a> v3.0, which will have lots of improvements! ;-)</p>
<div class="facebook_like_button"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.tanelpoder.com%2F2010%2F02%2F03%2Foracle-peformance-visualization%2F&amp;layout=standard&amp;show-faces=true&amp;width=450&amp;action=like&amp;font=arial&amp;colorscheme=light" scrolling="no" frameborder="0" allowTransparency="true" style="padding: 0px 0px; border:none; overflow:hidden; width:450px; height:70px;"></iframe></div> <img src="http://blog.tanelpoder.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=598" width="1" height="1" style="display: none;" /><p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://blog.tanelpoder.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://blog.tanelpoder.com/2010/02/03/oracle-peformance-visualization/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
