<?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; Cool stuff</title>
	<atom:link href="http://blog.tanelpoder.com/category/cool-stuff/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.tanelpoder.com</link>
	<description>Oracle troubleshooting, internals and performance tuning</description>
	<lastBuildDate>Sat, 31 Jul 2010 05:44:10 +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>The full power of Oracle&#8217;s diagnostic events, part 2: ORADEBUG DOC and 11g improvements</title>
		<link>http://blog.tanelpoder.com/2010/06/23/the-full-power-of-oracles-diagnostic-events-part-2-oradebug-doc-and-11g-improvements/</link>
		<comments>http://blog.tanelpoder.com/2010/06/23/the-full-power-of-oracles-diagnostic-events-part-2-oradebug-doc-and-11g-improvements/#comments</comments>
		<pubDate>Wed, 23 Jun 2010 11:46:31 +0000</pubDate>
		<dc:creator>Tanel Poder</dc:creator>
				<category><![CDATA[Cool stuff]]></category>
		<category><![CDATA[Internals]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Oracle 11g]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Troubleshooting]]></category>

		<guid isPermaLink="false">http://blog.tanelpoder.com/?p=697</guid>
		<description><![CDATA[I haven&#8217;t written any blog entries for a while, so here&#8217;s a very sweet treat for low-level Oracle troubleshooters and internals geeks out there :) Over a year ago I wrote that Oracle 11g has a completely new low-level kernel diagnostics &#38; tracing infrastructure built in to it. I wanted to write a longer article [...]]]></description>
			<content:encoded><![CDATA[<p>I haven&#8217;t written any blog entries for a while, so here&#8217;s a very sweet treat for low-level Oracle troubleshooters and internals geeks out there :)</p>
<p>Over a year ago <a href="http://blog.tanelpoder.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2Jsb2cudGFuZWxwb2Rlci5jb20vMjAwOS8wMy8wMy90aGUtZnVsbC1wb3dlci1vZi1vcmFjbGVzLWRpYWdub3N0aWMtZXZlbnRzLXBhcnQtMS1zeW50YXgtZm9yLWtzZC1kZWJ1Zy1ldmVudC1oYW5kbGluZy8=" target=\"_blank\">I wrote</a> that Oracle 11g has a completely new low-level kernel diagnostics &amp; tracing infrastructure built in to it. I wanted to write a longer article about it with comprehensive examples and use cases, but by now I realize I won&#8217;t ever have time for this, so I&#8217;ll just point you to the right direction :)</p>
<p>Basically, since 11g, you can use SQL_Trace, kernel undocumented traces, various dumps and other actions at much better granularity than before.</p>
<p>For example, you can enable SQL_Trace for a specific SQL_ID only:</p>
<pre>SQL&gt; alter session set events 'sql_trace[<strong>SQL: 32cqz71gd8wy3</strong>] 
<span style="font-size: 11.6667px;">{<strong>pgadep: exactdepth 0</strong>} {<strong>callstack: fname opiexe</strong>}
plan_stat=all_executions,wait=true,bind=true';</span>
<span style="font-size: 11.6667px;">
</span>
<span style="font-size: 11.6667px;">Session altered.</span></pre>
<p><span style="font-size: 13.3333px;">Actually I have done more in above example, I have also said that trace only when the PGA depth (the dep= in tracefile) is zero. This means that trace only top-level calls, issued directly by the client application and not recursively by some PL/SQL or by dictionary cache layer. Additionally I have added a check whether we are currently servicing opiexe function (whether the current call stack contains opiexe as a (grand)parent function) &#8211; this allows to trace &amp; dump only in specific cases of interest!</span></p>
<p>The syntax is actually more powerful than that, in this example I&#8217;m running kernel tracing for a kernel component plus instructing Oracle to dump various other things at level 1 (callstack,process state and query block debug info) whenever a tracepoint (event) in the SQL Transformation component family is hit:</p>
<pre>SQL&gt; alter session set events 'trace[<strong>RDBMS.SQL_Transform</strong>] <span style="font-size: 11.6667px;">[<strong>SQL: 32cqz71gd8wy3</strong>]
disk=high <strong>RDBMS.query_block_dump(1) processstate(1) callstack(1)</strong>';</span>
<span style="font-size: 11.6667px;">
</span>
<span style="font-size: 11.6667px;">Session altered.</span></pre>
<p>And by now you are probably asking that where is this syntax formally documented? Google and MOS searches don&#8217;t return anything useful. Well, as with many other things, a good reference is stored within Oracle kernel itself!</p>
<p>Just log on as sysdba and type ORADEBUG DOC:</p>
<p><strong>ORADEBUG DOC</strong></p>
<pre>SQL&gt; oradebug doc</pre>
<pre>Internal Documentation
<span style="font-size: 11.6667px;">**********************
</span><span style="font-size: 11.6667px;">EVENT                           Help on events (syntax, event list, ...)
</span><span style="font-size: 11.6667px;">COMPONENT       [&lt;comp_name&gt;]   List all components or describe &lt;comp_name&gt;</span></pre>
<p>This gives you the index page, now you can navigate on by running ORADEBUG DOC EVENT and take it from there. There&#8217;s lots of documentation there!</p>
<p><span style="font-size: 13.3333px;">I have put the output with some comments and examples into my website too:</span></p>
<p><span style="font-size: 13.3333px;"><a href="http://blog.tanelpoder.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2guZTJzbi5jb20vb3JhY2xlL3Ryb3VibGVzaG9vdGluZy9vcmFkZWJ1Zy1kb2M=" target=\"_blank\">http://tech.e2sn.com/oracle/troubleshooting/oradebug-doc</a></span></p>
<p>Note that this feature is quite fresh, almost not used at all in the real (production) world, so I consider this quite experimental. I have managed to crash my session with some tests, so take the usual advice about any undocumented stuff (and oradebug) &#8211; don&#8217;t use it in production without thinking first and if you do use it, then use it at your own risk!</p>
<div class="facebook_like_button"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.tanelpoder.com%2F2010%2F06%2F23%2Fthe-full-power-of-oracles-diagnostic-events-part-2-oradebug-doc-and-11g-improvements%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=697" 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/06/23/the-full-power-of-oracles-diagnostic-events-part-2-oradebug-doc-and-11g-improvements/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Flexible Sqlplus command line history with RLWRAP</title>
		<link>http://blog.tanelpoder.com/2010/05/07/flexible-sqlplus-command-line-history-with-rlwrap/</link>
		<comments>http://blog.tanelpoder.com/2010/05/07/flexible-sqlplus-command-line-history-with-rlwrap/#comments</comments>
		<pubDate>Fri, 07 May 2010 22:49:26 +0000</pubDate>
		<dc:creator>Tanel Poder</dc:creator>
				<category><![CDATA[Administration]]></category>
		<category><![CDATA[Cool stuff]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://blog.tanelpoder.com/?p=690</guid>
		<description><![CDATA[At Hotsos Symposium Training Day I used rlwrap with sqlplus &#8211; which gives nice command line editing and history capabilities for tools like sqlplus. Additionally I pre-generated commonly used Oracle keywords, data dictionary view and package names into rlwrap wordfile, so I got nice tab-completion too. Sqlplus sucks much less with rlwrap ;-) It&#8217;s relatively [...]]]></description>
			<content:encoded><![CDATA[<p>At Hotsos Symposium Training Day I used rlwrap with sqlplus &#8211; which gives nice command line editing and history capabilities for tools like sqlplus. Additionally I pre-generated commonly used Oracle keywords, data dictionary view and package names into rlwrap wordfile, so I got nice tab-completion too. Sqlplus sucks much less with rlwrap ;-)</p>
<p>It&#8217;s relatively easy to install rlwrap on Unix (there are rlwrap RPMs out there, Solaris freeware packages and I installed it on Mac via macports.org). Just google around&#8230;</p>
<p>You can have rlwrap on Windows too &#8211; As rlwrap has been coded for Unix flavors, then on Windows you need to run it on a Unix library environment emulator &#8211; like Cygwin.</p>
<p>Dave Herring and Michael Paddock have both written an article about how to get rlwrap &amp; sqlplus running on Windows, check out the articles here. It&#8217;s worth reading both as they have different additions&#8230;</p>
<p>So, if you want command line history, search and tab completion for sqlplus on Unix flavors or Windows, check these articles out!</p>
<p><a href="http://blog.tanelpoder.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2RhdmVoZXJyaW5nc2RiYWJsb2cuYmxvZ3Nwb3QuY29tLzIwMTAvMDMvc3FscGx1cy1jb21tYW5kLWhpc3Rvcnktd2l0aC1jeWd3aW4uaHRtbA==">http://daveherringsdbablog.blogspot.com/2010/03/sqlplus-command-history-with-cygwin.html</a></p>
<p><a href="http://blog.tanelpoder.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2Jsb2cuZW5raXRlYy5jb20vMjAxMC8wNC8yOS91c2luZy1zcWxwbHVzLXdpdGgtcmx3cmFwLW9uLW1zLXdpbmRvd3Mv">http://blog.enkitec.com/2010/04/29/using-sqlplus-with-rlwrap-on-ms-windows/</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%2F07%2Fflexible-sqlplus-command-line-history-with-rlwrap%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=690" 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/07/flexible-sqlplus-command-line-history-with-rlwrap/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Execution plan Quiz: Shouldn&#8217;t these row sources be the other way around ;-)</title>
		<link>http://blog.tanelpoder.com/2010/04/27/execution-plan-quiz-shouldnt-these-row-sources-be-the-other-way-around/</link>
		<comments>http://blog.tanelpoder.com/2010/04/27/execution-plan-quiz-shouldnt-these-row-sources-be-the-other-way-around/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 18:58:27 +0000</pubDate>
		<dc:creator>Tanel Poder</dc:creator>
				<category><![CDATA[Cool stuff]]></category>
		<category><![CDATA[Internals]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://blog.tanelpoder.com/?p=683</guid>
		<description><![CDATA[Here&#8217;s a little trick question. Check out the execution plan below. What the hell, shouldn&#8217;t the INDEX/TABLE access be the other way around?! Also, how come it&#8217;s TABLE ACCESS FULL (and not by INDEX ROWID) in there? This question is with a little gotcha, but can you come up with a query which produced such [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a little trick question. Check out the execution plan below.</p>
<p>What the hell, shouldn&#8217;t the INDEX/TABLE access be the other way around?!</p>
<p>Also, how come it&#8217;s TABLE ACCESS FULL (and not by INDEX ROWID) in there?</p>
<p>This question is with a little gotcha, but can you come up with a query which produced such plan? ;-)</p>
<pre>----------------------------------------------
| Id  | Operation          | Name   | E-Rows |
----------------------------------------------
|   0 | SELECT STATEMENT   |        |        |
|*  1 |  INDEX RANGE SCAN  | PK_EMP |      1 |
|*  2 |   TABLE ACCESS FULL| EMP    |      1 |
----------------------------------------------</pre>
<div class="facebook_like_button"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.tanelpoder.com%2F2010%2F04%2F27%2Fexecution-plan-quiz-shouldnt-these-row-sources-be-the-other-way-around%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=683" 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/27/execution-plan-quiz-shouldnt-these-row-sources-be-the-other-way-around/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Quiz: Explaining index creation</title>
		<link>http://blog.tanelpoder.com/2010/04/23/quiz-explaining-index-creation/</link>
		<comments>http://blog.tanelpoder.com/2010/04/23/quiz-explaining-index-creation/#comments</comments>
		<pubDate>Fri, 23 Apr 2010 14:49:02 +0000</pubDate>
		<dc:creator>Tanel Poder</dc:creator>
				<category><![CDATA[Administration]]></category>
		<category><![CDATA[Cool stuff]]></category>
		<category><![CDATA[Internals]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Troubleshooting]]></category>

		<guid isPermaLink="false">http://blog.tanelpoder.com/?p=680</guid>
		<description><![CDATA[Did you know that it&#8217;s possible to use EXPLAIN PLAN FOR CREATE INDEX ON table(col1,col2,col3) syntax for explaining what exactly would be done when an index is created? That&#8217;s useful for example for seeing the Oracle&#8217;s estimated index size without having to actually create the index. You can also use EXPLAIN PLAN FOR ALTER INDEX [...]]]></description>
			<content:encoded><![CDATA[<p>Did you know that it&#8217;s possible to use EXPLAIN PLAN FOR <strong>CREATE INDEX </strong>ON table(col1,col2,col3) syntax for explaining what exactly would be done when an index is created?</p>
<p>That&#8217;s useful for example for seeing the Oracle&#8217;s estimated index size without having to actually create the index.</p>
<p>You can also use EXPLAIN PLAN FOR <strong>ALTER INDEX</strong> i <strong>REBUILD</strong> to see whether this operation would use a FULL TABLE SCAN or a FAST FULL INDEX SCAN (offline index rebuilds of valid indexes can use this method).</p>
<p>Anyway, you can experiment with this yourself, but here&#8217;s a little quiz (with a little gotcha :)</p>
<p>What kind of index creation statement would create such an execution plan?</p>
<pre>SQL&gt; explain plan for create index hack_index on hack_table ....the rest is a secret for now....
Explained.
<span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: small;"><span style="line-height: 19px; white-space: normal;"><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; font-size: small;"><span style="line-height: 18px; white-space: pre;">
<pre>PLAN_TABLE_OUTPUT
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Plan hash value: 457720527
-------------------------------------------------------------------------------------------------
| Id  | Operation                | Name                 | Rows  | Bytes | Cost (%CPU)| Time     |
-------------------------------------------------------------------------------------------------
|   0 | CREATE INDEX STATEMENT   |                      | 88868 |       |   657   (1)| 00:00:12 |
|   1 |  INDEX BUILD NON UNIQUE  | HACK_INDEX           |       |       |            |          |
|   2 |   SORT AGGREGATE         |                      |     1 |       |            |          |
|   3 |    VIEW                  | HACK_VIEW            | 74062 |       |   318   (1)| 00:00:06 |
|*  4 |     HASH JOIN            |                      | 74062 |  1012K|   210   (1)| 00:00:04 |
|   5 |      TABLE ACCESS FULL   | TEST_USERS           |    46 |   368 |     4   (0)| 00:00:01 |
|   6 |      INDEX FAST FULL SCAN| IDX2_INDEXED_OBJECTS | 74062 |   433K|   206   (1)| 00:00:04 |
|   7 |   SORT CREATE INDEX      |                      | 88868 |       |            |          |
|   8 |    TABLE ACCESS FULL     | HACK_TABLE           | 88868 |       |   544   (1)| 00:00:10 |
-------------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
4 - access("U"."USERNAME"="O"."OWNER")
Note
-----
- estimated index size: 3145K bytes</pre>
<p></span></span></span></span></pre>
<div class="facebook_like_button"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.tanelpoder.com%2F2010%2F04%2F23%2Fquiz-explaining-index-creation%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=680" 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/23/quiz-explaining-index-creation/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>KGH: NO ACCESS &#8211; Buffer cache inside streams pool too!</title>
		<link>http://blog.tanelpoder.com/2010/04/21/kgh-no-access-buffer-cache-inside-streams-pool-too/</link>
		<comments>http://blog.tanelpoder.com/2010/04/21/kgh-no-access-buffer-cache-inside-streams-pool-too/#comments</comments>
		<pubDate>Wed, 21 Apr 2010 19:21:44 +0000</pubDate>
		<dc:creator>Tanel Poder</dc:creator>
				<category><![CDATA[Cool stuff]]></category>
		<category><![CDATA[Internals]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Oracle 11gR2]]></category>
		<category><![CDATA[Troubleshooting]]></category>

		<guid isPermaLink="false">http://blog.tanelpoder.com/?p=669</guid>
		<description><![CDATA[Some time ago I wrote that since Oracle 10.2, some of the buffer cache can physically reside within shared pool granules. I just noticed this in an 11.2 instance: SQL&#62; select * from v$sgastat where name like &#8216;KGH%&#8217;; POOL         NAME                       [...]]]></description>
			<content:encoded><![CDATA[<p>Some time ago I <a href="http://blog.tanelpoder.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2Jsb2cudGFuZWxwb2Rlci5jb20vMjAwOS8wOS8wOS9rZ2gtbm8tYWNjZXNzLWFsbG9jYXRpb25zLWluLXZzZ2FzdGF0LWJ1ZmZlci1jYWNoZS13aXRoaW4tc2hhcmVkLXBvb2wv">wrote</a> that since Oracle 10.2, some of the buffer cache can physically reside within <strong>shared pool</strong> granules.</p>
<p>I just noticed this in an 11.2 instance:</p>
<div><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre;">SQL&gt; select * from v$sgastat where name like &#8216;KGH%&#8217;;</span></div>
<div>
<pre>POOL         NAME                            BYTES
------------ -------------------------- ----------
streams pool KGH: NO ACCESS                4186144</pre>
</div>
<div></div>
<div></div>
<div>So, it looks that also streams pool can surrender parts of its memory granules to buffer cache, if it&#8217;s unable to flush everything out from the granule for complete granule handover.</div>
<div>Let&#8217;s see whether that&#8217;s the case:</div>
<div>
<pre>

SQL&gt; select last_oper_type, last_oper_mode from v$sga_dynamic_components where component = 'streams pool';
LAST_OPER_TYP LAST_OPER
------------- ---------
SHRINK        DEFERRED</pre>
</div>
<div></div>
<div></div>
<div>Yep, the last streams pool shrink operation was left in DEFERRED status, which means the granule wasn&#8217;t handed over &#8211; streams pool kept the granule for itself, marked everything it could flush out as KGH: NO ACCESS in its heap header and handed these chunks over to buffer cache manager.</div>
<div>Lets check whether these chunks are actually used by buffer cache buffers:</div>
<div>(NB! Think twice before running this query in production as it may hold your shared pool latches for very long time):</div>
<div></div>
<div></div>
<div>
<pre>SQL&gt; select ksmchidx,ksmchdur,ksmchcom,ksmchptr,ksmchsiz,ksmchcls from x$ksmsst where ksmchcom = 'KGH: NO ACCESS';
  KSMCHIDX   KSMCHDUR KSMCHCOM         KSMCHPTR           KSMCHSIZ KSMCHCLS
---------- ---------- ---------------- ---------------- ---------- --------
         1          4 KGH: NO ACCESS   00000003A2401FE0    4186144 no acce</pre>
</div>
<div>So, there&#8217;s only one chunk flushed &amp; handed over to buffer cache in the streams pool heap. The KSMCHPTR column shows the starting address of that chunk in SGA and the KSMCHSIZ is the size of that chunk.</div>
<div>So, let&#8217;s see if there are any buffers within that address range. First I&#8217;ll calculate the end address of that chunk (start address + size -1 = end address)</div>
<div>
<pre>

SQL&gt; @calc 0x00000003A2401FE0 + 4186143
                     DEC                  HEX
------------------------ --------------------
         15611199487.000            3A27FFFFF</pre>
</div>
<div></div>
<div></div>
<div>And now lets query X$BH using that address range to see if / how many buffer cache buffers have been placed in there:</div>
<div>
<pre>

SQL&gt; select count(*) from x$bh where rawtohex(ba) between '00000003A2401FE0' and '00000003A27FFFFF';

  COUNT(*)
----------
       483</pre>
</div>
<div></div>
<div></div>
<div>We have just proven, that there are 483 buffer cache buffers (~3.8MB, 8kB buffers) which reside physically in streams pool heap!</div>
<div></div>
<div></div>
<div></div>
<div class="facebook_like_button"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.tanelpoder.com%2F2010%2F04%2F21%2Fkgh-no-access-buffer-cache-inside-streams-pool-too%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=669" 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/kgh-no-access-buffer-cache-inside-streams-pool-too/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Calculate SQL_ID and SQL_HASH_VALUE from SQL text</title>
		<link>http://blog.tanelpoder.com/2010/03/31/calculate-sql_id-and-sql_hash_value-from-sql-text/</link>
		<comments>http://blog.tanelpoder.com/2010/03/31/calculate-sql_id-and-sql_hash_value-from-sql-text/#comments</comments>
		<pubDate>Wed, 31 Mar 2010 17:39:05 +0000</pubDate>
		<dc:creator>Tanel Poder</dc:creator>
				<category><![CDATA[Cool stuff]]></category>
		<category><![CDATA[Internals]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://blog.tanelpoder.com/?p=663</guid>
		<description><![CDATA[Some time ago I wrote an article about the 10g+ SQL_ID being just a hash value of the SQL statement text. It&#8217;s just like the &#8220;old&#8221; SQL_HASH_VALUE, only twice longer (8 last bytes instead of 4 last bytes of the MD5 hash value of SQL text). Slavik Markovich has written a nice python script for [...]]]></description>
			<content:encoded><![CDATA[<p>Some time ago I wrote <a href="http://blog.tanelpoder.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2Jsb2cudGFuZWxwb2Rlci5jb20vMjAwOS8wMi8yMi9zcWxfaWQtaXMtanVzdC1hLWZhbmN5LXJlcHJlc2VudGF0aW9uLW9mLWhhc2gtdmFsdWUv">an article</a> about the 10g+ SQL_ID being just a hash value of the <strong>SQL statement text</strong>. It&#8217;s just like the &#8220;old&#8221; SQL_HASH_VALUE, only twice longer (8 last bytes instead of 4 last bytes of the MD5 hash value of SQL text).</p>
<p>Slavik Markovich has written a nice python script for calculating SQL_IDs and SQL hash values from SQL text using that approach.</p>
<p>Slavik&#8217;s article is available here:</p>
<p><a href="http://blog.tanelpoder.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3d3dy5zbGF2aWtzLWJsb2cuY29tLzIwMTAvMDMvMzAvb3JhY2xlLXNxbF9pZC1hbmQtaGFzaC12YWx1ZS8=">http://www.slaviks-blog.com/2010/03/30/oracle-sql_id-and-hash-value/</a></p>
<div class="facebook_like_button"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fblog.tanelpoder.com%2F2010%2F03%2F31%2Fcalculate-sql_id-and-sql_hash_value-from-sql-text%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=663" 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/31/calculate-sql_id-and-sql_hash_value-from-sql-text/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>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 Troubleshooting: How to read Oracle ERRORSTACK output?!</title>
		<link>http://blog.tanelpoder.com/2010/02/14/oracle-troubleshooting-how-to-read-oracle-errorstack-output/</link>
		<comments>http://blog.tanelpoder.com/2010/02/14/oracle-troubleshooting-how-to-read-oracle-errorstack-output/#comments</comments>
		<pubDate>Sun, 14 Feb 2010 18:41:46 +0000</pubDate>
		<dc:creator>Tanel Poder</dc:creator>
				<category><![CDATA[Administration]]></category>
		<category><![CDATA[Cool stuff]]></category>
		<category><![CDATA[Internals]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[Tuning]]></category>

		<guid isPermaLink="false">http://blog.tanelpoder.com/?p=617</guid>
		<description><![CDATA[I have written the first article to the troubleshooting section of my new website tech.E2SN.com: It&#8217;s about a very valuable Oracle troubleshooting tool -&#62; ERRORSTACK trace. I cover 4 frequently asked questions there: Reading the current executing SQL statement text from errorstack trace Reading the current executing PL/SQL package and PL/SQL source code line number [...]]]></description>
			<content:encoded><![CDATA[<p>I have written the first article to the troubleshooting section of my new website tech.E2SN.com:</p>
<p>It&#8217;s about a very valuable Oracle troubleshooting tool -&gt; ERRORSTACK trace.</p>
<p>I cover 4 frequently asked questions there:</p>
<ol>
<li>Reading the current executing SQL statement text from errorstack trace</li>
<li>Reading the current executing PL/SQL package and PL/SQL source code line number from errorstack trace</li>
<li>Reading the current bind variable values from errostack trace</li>
<li>Identifying how much private (UGA) memory a cursor is using</li>
</ol>
<p>You can read it here:</p>
<ul>
<li><a href="http://blog.tanelpoder.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2guZTJzbi5jb20vb3JhY2xlL3Ryb3VibGVzaG9vdGluZy9ob3ctdG8tcmVhZC1lcnJvcnN0YWNrLW91dHB1dA==" target=\"_blank\">http://tech.e2sn.com/oracle/troubleshooting/how-to-read-errorstack-output</a></li>
</ul>
<p>By the way, if you like my new website, feel free to link to it !!! ;-)</p>
<ul>
<li><a href="http://blog.tanelpoder.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3RlY2guZTJzbi5jb20=" target=\"_blank\">http://tech.e2sn.com</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%2F14%2Foracle-troubleshooting-how-to-read-oracle-errorstack-output%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=617" 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/14/oracle-troubleshooting-how-to-read-oracle-errorstack-output/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>
