<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: ANSI Outer 2</title>
	<atom:link href="http://jonathanlewis.wordpress.com/2012/07/16/ansi-outer-2/feed/" rel="self" type="application/rss+xml" />
	<link>http://jonathanlewis.wordpress.com/2012/07/16/ansi-outer-2/</link>
	<description>Just another Oracle weblog</description>
	<lastBuildDate>Wed, 19 Jun 2013 16:07:17 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: jayasankar</title>
		<link>http://jonathanlewis.wordpress.com/2012/07/16/ansi-outer-2/#comment-48120</link>
		<dc:creator><![CDATA[jayasankar]]></dc:creator>
		<pubDate>Thu, 19 Jul 2012 12:00:53 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=9184#comment-48120</guid>
		<description><![CDATA[Apologise i wasn&#039;t knowing that you are part of otn database forum..to be honest i didn&#039;t even try to find.]]></description>
		<content:encoded><![CDATA[<p>Apologise i wasn&#8217;t knowing that you are part of otn database forum..to be honest i didn&#8217;t even try to find.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jonathan Lewis</title>
		<link>http://jonathanlewis.wordpress.com/2012/07/16/ansi-outer-2/#comment-48119</link>
		<dc:creator><![CDATA[Jonathan Lewis]]></dc:creator>
		<pubDate>Thu, 19 Jul 2012 11:33:25 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=9184#comment-48119</guid>
		<description><![CDATA[Jayasankar,

Two things about your comment (apart from the fact that this isn&#039;t a forum):

a) it&#039;s not hard to find out how to reach me - my email address is on the home page for the blog, and if you didn&#039;t think of looking there then a google search for &quot;jonathan lewis email&quot; returns my home page as the first hit, showing my email address and cell-phone number.

b) you&#039;ve previously posted this on the OTN database forum - I participate in the forum when I have time, so it&#039;s particularly ill-mannered to post this on my blog when I&#039;ve implicitly declined to  take part in discussing your problem.  It would have been slightly less rude to post a link to the original: 
https://forums.oracle.com/forums/thread.jspa?threadID=2415815&amp;tstart=0

As it stands to date: I think Hemant Chitale has made an interesting observation, and I would have dumped a couple of the blocks that you&#039;ve reported as the targets of single block reads to see what&#039;s in them.]]></description>
		<content:encoded><![CDATA[<p>Jayasankar,</p>
<p>Two things about your comment (apart from the fact that this isn&#8217;t a forum):</p>
<p>a) it&#8217;s not hard to find out how to reach me &#8211; my email address is on the home page for the blog, and if you didn&#8217;t think of looking there then a google search for &#8220;jonathan lewis email&#8221; returns my home page as the first hit, showing my email address and cell-phone number.</p>
<p>b) you&#8217;ve previously posted this on the OTN database forum &#8211; I participate in the forum when I have time, so it&#8217;s particularly ill-mannered to post this on my blog when I&#8217;ve implicitly declined to  take part in discussing your problem.  It would have been slightly less rude to post a link to the original:<br />
<a href="https://forums.oracle.com/forums/thread.jspa?threadID=2415815&#038;tstart=0" rel="nofollow">https://forums.oracle.com/forums/thread.jspa?threadID=2415815&#038;tstart=0</a></p>
<p>As it stands to date: I think Hemant Chitale has made an interesting observation, and I would have dumped a couple of the blocks that you&#8217;ve reported as the targets of single block reads to see what&#8217;s in them.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jayasankar</title>
		<link>http://jonathanlewis.wordpress.com/2012/07/16/ansi-outer-2/#comment-48104</link>
		<dc:creator><![CDATA[jayasankar]]></dc:creator>
		<pubDate>Thu, 19 Jul 2012 07:24:09 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=9184#comment-48104</guid>
		<description><![CDATA[Hi Jonathan,
          
             I know what i am taking or asking is totally irrelevant to the above discussion but i have been working on one issue for quite some time so i though i could read you but i didn&#039;t find way so i have chosen this plafform

             why db file sequential read wait event shows up if table is accessing full table scan. I know sometime oracle choose to retrieve some blocks(Like segment header blocks, undo blocks) but in my case the only wait event i can see in whole trace file is  db file sequential read wait event and i can assure you that whole table is accessing through single block request that i have verified through owi views.

            In addition to this,  i have used parallel hints to do the same but still both parallel process are again accessing single blocks instead of multiblocks.

           So i have started looking into columns structure and something like  that and finanlly i have identified two columns in the select clause of my select stmt is making this strange behaviour. If i keep those two columns in the select clause then it choose single block request(db file sequential read) and if i remove those from select clause then it works the way it&#039;s supposed to work.

           Sorry for posting this question in blog.]]></description>
		<content:encoded><![CDATA[<p>Hi Jonathan,</p>
<p>             I know what i am taking or asking is totally irrelevant to the above discussion but i have been working on one issue for quite some time so i though i could read you but i didn&#8217;t find way so i have chosen this plafform</p>
<p>             why db file sequential read wait event shows up if table is accessing full table scan. I know sometime oracle choose to retrieve some blocks(Like segment header blocks, undo blocks) but in my case the only wait event i can see in whole trace file is  db file sequential read wait event and i can assure you that whole table is accessing through single block request that i have verified through owi views.</p>
<p>            In addition to this,  i have used parallel hints to do the same but still both parallel process are again accessing single blocks instead of multiblocks.</p>
<p>           So i have started looking into columns structure and something like  that and finanlly i have identified two columns in the select clause of my select stmt is making this strange behaviour. If i keep those two columns in the select clause then it choose single block request(db file sequential read) and if i remove those from select clause then it works the way it&#8217;s supposed to work.</p>
<p>           Sorry for posting this question in blog.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ANSI Outer 2 &#8211; All Things Oracle</title>
		<link>http://jonathanlewis.wordpress.com/2012/07/16/ansi-outer-2/#comment-48059</link>
		<dc:creator><![CDATA[ANSI Outer 2 &#8211; All Things Oracle]]></dc:creator>
		<pubDate>Tue, 17 Jul 2012 17:43:24 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=9184#comment-48059</guid>
		<description><![CDATA[[...] Continue reading&#8230;                       All Things Oracle [...]]]></description>
		<content:encoded><![CDATA[<p>[...] Continue reading&#8230;                       All Things Oracle [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Brady</title>
		<link>http://jonathanlewis.wordpress.com/2012/07/16/ansi-outer-2/#comment-48038</link>
		<dc:creator><![CDATA[John Brady]]></dc:creator>
		<pubDate>Tue, 17 Jul 2012 08:12:15 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=9184#comment-48038</guid>
		<description><![CDATA[Jonathan,

Thanks for the additional investigation on this.  I raised the original question on OTN, and did a short &lt;a href=&quot;http://databaseperformance.blogspot.co.uk/2012/07/all-outer-joins-are-not-equal.html&quot; rel=&quot;nofollow&quot;&gt;follow up post&lt;/a&gt; on my own blog.  As you say it is definitely something about the way that Oracle transforms ANSI SQL syntax into its own native equivalent before then optimizing it and producing an execution plan.

The real SQL is even more complex than the test case I gave - there are 7 tables being joined together.  And the main problem is that most columns allow NULL values, which prohibits the use of certain indexes (but not all indexes).  But the other tables are very small in size and have negligible access cost.

There are also some manual rewrites I can do to the SQL to improve things, such as replacing an OUTER join by an INNER join when the WHERE clause applies a constraint to a column from the OUTER table - if the OUTER join generated a pseudo row of NULL values then it could not match the WHERE constraint of being equal to a real value.  I&#039;ve not had a chance to do a full rewrite of the SQL yet, because of the complexity of it all and other more pressing problems.  But I now know what is going on within the query, and am ready to deal with it when the time arises.

Thanks again for the additional information, and to the others that replied on the OTN forum.

John]]></description>
		<content:encoded><![CDATA[<p>Jonathan,</p>
<p>Thanks for the additional investigation on this.  I raised the original question on OTN, and did a short <a href="http://databaseperformance.blogspot.co.uk/2012/07/all-outer-joins-are-not-equal.html" rel="nofollow">follow up post</a> on my own blog.  As you say it is definitely something about the way that Oracle transforms ANSI SQL syntax into its own native equivalent before then optimizing it and producing an execution plan.</p>
<p>The real SQL is even more complex than the test case I gave &#8211; there are 7 tables being joined together.  And the main problem is that most columns allow NULL values, which prohibits the use of certain indexes (but not all indexes).  But the other tables are very small in size and have negligible access cost.</p>
<p>There are also some manual rewrites I can do to the SQL to improve things, such as replacing an OUTER join by an INNER join when the WHERE clause applies a constraint to a column from the OUTER table &#8211; if the OUTER join generated a pseudo row of NULL values then it could not match the WHERE constraint of being equal to a real value.  I&#8217;ve not had a chance to do a full rewrite of the SQL yet, because of the complexity of it all and other more pressing problems.  But I now know what is going on within the query, and am ready to deal with it when the time arises.</p>
<p>Thanks again for the additional information, and to the others that replied on the OTN forum.</p>
<p>John</p>
]]></content:encoded>
	</item>
</channel>
</rss>
