<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Operation CONNECT BY WITH FILTERING</title>
	<atom:link href="http://antognini.ch/2008/06/operation-connect-by-with-filtering/feed/" rel="self" type="application/rss+xml" />
	<link>http://antognini.ch/2008/06/operation-connect-by-with-filtering/</link>
	<description></description>
	<lastBuildDate>Fri, 27 Jan 2012 07:31:12 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Leon</title>
		<link>http://antognini.ch/2008/06/operation-connect-by-with-filtering/comment-page-1/#comment-32750</link>
		<dc:creator>Leon</dc:creator>
		<pubDate>Thu, 28 Jul 2011 01:22:44 +0000</pubDate>
		<guid isPermaLink="false">http://antognini.ch/?p=27#comment-32750</guid>
		<description>Hi Chris,

Thank you very much. I am now more clear.

Best regards,
Leon</description>
		<content:encoded><![CDATA[<p>Hi Chris,</p>
<p>Thank you very much. I am now more clear.</p>
<p>Best regards,<br />
Leon</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Christian Antognini</title>
		<link>http://antognini.ch/2008/06/operation-connect-by-with-filtering/comment-page-1/#comment-32684</link>
		<dc:creator>Christian Antognini</dc:creator>
		<pubDate>Wed, 27 Jul 2011 13:47:23 +0000</pubDate>
		<guid isPermaLink="false">http://antognini.ch/?p=27#comment-32684</guid>
		<description>Hi Leon

&gt; But since ‘CONNECT BY WITH FILTERING’ just starts once, how can this operation identify all the levels of data? 

The execution is not atomic. During the execution this operation does several things... like getting the data of level &quot;n&quot; and starting the search of level &quot;n+1&quot;. 
You can imagine that there is a kind of pipe between operation 1 (CONNECT BY WITH FILTERING) and operation 4 (CONNECT BY PUMP). So, every time operation 1 gets the data for level &quot;n&quot; it sends into it the ID to find the data for level &quot;n+1&quot;.

&gt; And it seems that your answer aslo implies that operation for extracting data will start 4 times.

Also the Starts column of the dbms_xplan output confirms that the extraction of data is executed 4 times.

HTH
Chris</description>
		<content:encoded><![CDATA[<p>Hi Leon</p>
<p>&gt; But since ‘CONNECT BY WITH FILTERING’ just starts once, how can this operation identify all the levels of data? </p>
<p>The execution is not atomic. During the execution this operation does several things&#8230; like getting the data of level &#8220;n&#8221; and starting the search of level &#8220;n+1&#8243;.<br />
You can imagine that there is a kind of pipe between operation 1 (CONNECT BY WITH FILTERING) and operation 4 (CONNECT BY PUMP). So, every time operation 1 gets the data for level &#8220;n&#8221; it sends into it the ID to find the data for level &#8220;n+1&#8243;.</p>
<p>&gt; And it seems that your answer aslo implies that operation for extracting data will start 4 times.</p>
<p>Also the Starts column of the dbms_xplan output confirms that the extraction of data is executed 4 times.</p>
<p>HTH<br />
Chris</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Leon</title>
		<link>http://antognini.ch/2008/06/operation-connect-by-with-filtering/comment-page-1/#comment-32529</link>
		<dc:creator>Leon</dc:creator>
		<pubDate>Tue, 26 Jul 2011 05:15:18 +0000</pubDate>
		<guid isPermaLink="false">http://antognini.ch/?p=27#comment-32529</guid>
		<description>Hi Chris,
Thank you for your reply.

But since &#039;CONNECT BY WITH FILTERING&#039; just starts once, how can this operation identify all the levels of data? 

And it seems that your answer aslo implies that operation for extracting data will start 4 times. That&#039;s why I asked whether it&#039;s operation 4 passes n level data to level n+1 instead of operation 1.

Thank you very much.
Leon</description>
		<content:encoded><![CDATA[<p>Hi Chris,<br />
Thank you for your reply.</p>
<p>But since &#8216;CONNECT BY WITH FILTERING&#8217; just starts once, how can this operation identify all the levels of data? </p>
<p>And it seems that your answer aslo implies that operation for extracting data will start 4 times. That&#8217;s why I asked whether it&#8217;s operation 4 passes n level data to level n+1 instead of operation 1.</p>
<p>Thank you very much.<br />
Leon</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Christian Antognini</title>
		<link>http://antognini.ch/2008/06/operation-connect-by-with-filtering/comment-page-1/#comment-32309</link>
		<dc:creator>Christian Antognini</dc:creator>
		<pubDate>Mon, 25 Jul 2011 07:35:18 +0000</pubDate>
		<guid isPermaLink="false">http://antognini.ch/?p=27#comment-32309</guid>
		<description>Hi Leon

&gt; My question is which operation passes data from level 2 to operation 4?

Operation 1, CONNECT BY WITH FILTERING

&gt; Can I understand like this,the first execution has generated the level 2 data from
&gt; level 1 and CONNECT BY PUMP gets these data and then launches the subseque loop?

There are 4 executions:
- The first one extracts the data for level 1 and, therefore, provides the data to access level 2.
- The second execution extract the data for level 2 and provides the data to access level 3
- ...

In general: execution &quot;n&quot; extracts data for level &quot;n&quot; and provides the data to access level &quot;n+1&quot;.

HTH
Chris</description>
		<content:encoded><![CDATA[<p>Hi Leon</p>
<p>&gt; My question is which operation passes data from level 2 to operation 4?</p>
<p>Operation 1, CONNECT BY WITH FILTERING</p>
<p>&gt; Can I understand like this,the first execution has generated the level 2 data from<br />
&gt; level 1 and CONNECT BY PUMP gets these data and then launches the subseque loop?</p>
<p>There are 4 executions:<br />
- The first one extracts the data for level 1 and, therefore, provides the data to access level 2.<br />
- The second execution extract the data for level 2 and provides the data to access level 3<br />
- &#8230;</p>
<p>In general: execution &#8220;n&#8221; extracts data for level &#8220;n&#8221; and provides the data to access level &#8220;n+1&#8243;.</p>
<p>HTH<br />
Chris</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Leon</title>
		<link>http://antognini.ch/2008/06/operation-connect-by-with-filtering/comment-page-1/#comment-32300</link>
		<dc:creator>Leon</dc:creator>
		<pubDate>Mon, 25 Jul 2011 06:42:27 +0000</pubDate>
		<guid isPermaLink="false">http://antognini.ch/?p=27#comment-32300</guid>
		<description>Hi Chris,
Thank you for your good article.But I have one question about &#039;For the second execution of operation 4, everything works the same as for the first execution. The only difference is that the data from level 2 ...is passed to operation 4 for the processing. &#039;

My question is which operation passes data from level 2 to operation 4? 
Can I understand like this,the first execution has generated the level 2 data from level 1 and CONNECT BY PUMP gets these data and then launches the subseque loop?

Best regards,
Leon</description>
		<content:encoded><![CDATA[<p>Hi Chris,<br />
Thank you for your good article.But I have one question about &#8216;For the second execution of operation 4, everything works the same as for the first execution. The only difference is that the data from level 2 &#8230;is passed to operation 4 for the processing. &#8216;</p>
<p>My question is which operation passes data from level 2 to operation 4?<br />
Can I understand like this,the first execution has generated the level 2 data from level 1 and CONNECT BY PUMP gets these data and then launches the subseque loop?</p>
<p>Best regards,<br />
Leon</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Resolving chains of events with CONNECT_BY &#171; Todor Botev&#39;s Blog</title>
		<link>http://antognini.ch/2008/06/operation-connect-by-with-filtering/comment-page-1/#comment-4276</link>
		<dc:creator>Resolving chains of events with CONNECT_BY &#171; Todor Botev&#39;s Blog</dc:creator>
		<pubDate>Sun, 23 Aug 2009 07:26:02 +0000</pubDate>
		<guid isPermaLink="false">http://antognini.ch/?p=27#comment-4276</guid>
		<description>[...] of data. So please test for performance &#8211; with a data volume comparable to the real one. Here is a very good detailed explanation by Christian Antognini of how CONNECT_BY is executed internally [...]</description>
		<content:encoded><![CDATA[<p>[...] of data. So please test for performance &#8211; with a data volume comparable to the real one. Here is a very good detailed explanation by Christian Antognini of how CONNECT_BY is executed internally [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Christian Antognini</title>
		<link>http://antognini.ch/2008/06/operation-connect-by-with-filtering/comment-page-1/#comment-3534</link>
		<dc:creator>Christian Antognini</dc:creator>
		<pubDate>Fri, 17 Jul 2009 13:44:40 +0000</pubDate>
		<guid isPermaLink="false">http://antognini.ch/?p=27#comment-3534</guid>
		<description>Hi Todor

Sorry, but I don&#039;t know why this double check is needed. My best guess is the following: since it is an access predicate (not a filter predicate), this probably means that data is placed in a memory structure (kind-of hash table) and, to access it, the key is MGR.

Cheers,
Chris</description>
		<content:encoded><![CDATA[<p>Hi Todor</p>
<p>Sorry, but I don&#8217;t know why this double check is needed. My best guess is the following: since it is an access predicate (not a filter predicate), this probably means that data is placed in a memory structure (kind-of hash table) and, to access it, the key is MGR.</p>
<p>Cheers,<br />
Chris</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Todor Botev</title>
		<link>http://antognini.ch/2008/06/operation-connect-by-with-filtering/comment-page-1/#comment-3431</link>
		<dc:creator>Todor Botev</dc:creator>
		<pubDate>Thu, 02 Jul 2009 10:50:30 +0000</pubDate>
		<guid isPermaLink="false">http://antognini.ch/?p=27#comment-3431</guid>
		<description>Thank you for this insightfull and very well written post!

[...]9. Operation 1 applies the access predicate &quot;MGR&quot;=PRIOR &quot;EMPNO&quot; and sends the 14 rows to the caller.[...]

Why do we need the access predicate in operation 1 ? I think the whole algorithm ensures that only &quot;valid&quot; rows get reported to operation 1. Why is it needed to apply the predicate once more before sending them to the caller?</description>
		<content:encoded><![CDATA[<p>Thank you for this insightfull and very well written post!</p>
<p>[...]9. Operation 1 applies the access predicate &#8220;MGR&#8221;=PRIOR &#8220;EMPNO&#8221; and sends the 14 rows to the caller.[...]</p>
<p>Why do we need the access predicate in operation 1 ? I think the whole algorithm ensures that only &#8220;valid&#8221; rows get reported to operation 1. Why is it needed to apply the predicate once more before sending them to the caller?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alen</title>
		<link>http://antognini.ch/2008/06/operation-connect-by-with-filtering/comment-page-1/#comment-3405</link>
		<dc:creator>Alen</dc:creator>
		<pubDate>Tue, 30 Jun 2009 12:08:04 +0000</pubDate>
		<guid isPermaLink="false">http://antognini.ch/?p=27#comment-3405</guid>
		<description>I&#039;ve been always wondering what is that third child operation which always shows &quot;table access full&quot; and never gets executed. Finally I got the answer!</description>
		<content:encoded><![CDATA[<p>I&#8217;ve been always wondering what is that third child operation which always shows &#8220;table access full&#8221; and never gets executed. Finally I got the answer!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Connect By &#171; Oracle Scratchpad</title>
		<link>http://antognini.ch/2008/06/operation-connect-by-with-filtering/comment-page-1/#comment-3403</link>
		<dc:creator>Connect By &#171; Oracle Scratchpad</dc:creator>
		<pubDate>Tue, 30 Jun 2009 09:22:24 +0000</pubDate>
		<guid isPermaLink="false">http://antognini.ch/?p=27#comment-3403</guid>
		<description>[...] an interesting post on this topic on Christian Antognini&#8217;s blog (which I&#8217;ve also referenced from the OTN posting)    [...]</description>
		<content:encoded><![CDATA[<p>[...] an interesting post on this topic on Christian Antognini&#8217;s blog (which I&#8217;ve also referenced from the OTN posting)    [...]</p>
]]></content:encoded>
	</item>
</channel>
</rss>

