<?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: The Core Performance Fundamentals Of Oracle Data Warehousing – Set Processing vs Row Processing</title>
	<atom:link href="http://structureddata.org/2010/07/20/the-core-performance-fundamentals-of-oracle-data-warehousing-%e2%80%93-set-processing-vs-row-processing/feed/" rel="self" type="application/rss+xml" />
	<link>http://structureddata.org/2010/07/20/the-core-performance-fundamentals-of-oracle-data-warehousing-%e2%80%93-set-processing-vs-row-processing/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=the-core-performance-fundamentals-of-oracle-data-warehousing-%25e2%2580%2593-set-processing-vs-row-processing</link>
	<description>Data, Databases, Performance &#38; Scalability</description>
	<lastBuildDate>Mon, 30 Jan 2012 17:05:12 -0500</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Tim Hall</title>
		<link>http://structureddata.org/2010/07/20/the-core-performance-fundamentals-of-oracle-data-warehousing-%e2%80%93-set-processing-vs-row-processing/#comment-11956</link>
		<dc:creator>Tim Hall</dc:creator>
		<pubDate>Sat, 24 Jul 2010 12:28:43 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/?p=939#comment-11956</guid>
		<description>@Greg Rahn

Don&#039;t get me wrong, I have no doubt about the Exadata horsepower. I sat and watched the &quot;Terabyte Hour&quot; session at OpenWorld (OK it was a Exadata V1, but still very impressive). I completely agree that for most people, performance of the re-engineered app on their own kit is not comparible to the performance of the re-engineered app on Exadata. Indeed, some of the decisions on how you re-engineer the app may be affected by your kit, so there may be situations where it is sensible to re-engineer after moving to Exadata.

The point is, and you have already made it in your post, put a bad app on top great hardware and you are still left with a bad app. It seems like everyone knows this, but it gets conveniently ignored when making hardware purchasing decisions.

Cheers

Tim...

PS. If you have an Exadata V2 box going spare I could make use of it at home... :)</description>
		<content:encoded><![CDATA[<p>@Greg Rahn</p>
<p>Don&#8217;t get me wrong, I have no doubt about the Exadata horsepower. I sat and watched the &#8220;Terabyte Hour&#8221; session at OpenWorld (OK it was a Exadata V1, but still very impressive). I completely agree that for most people, performance of the re-engineered app on their own kit is not comparible to the performance of the re-engineered app on Exadata. Indeed, some of the decisions on how you re-engineer the app may be affected by your kit, so there may be situations where it is sensible to re-engineer after moving to Exadata.</p>
<p>The point is, and you have already made it in your post, put a bad app on top great hardware and you are still left with a bad app. It seems like everyone knows this, but it gets conveniently ignored when making hardware purchasing decisions.</p>
<p>Cheers</p>
<p>Tim&#8230;</p>
<p>PS. If you have an Exadata V2 box going spare I could make use of it at home&#8230; :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Log Buffer #196, A Carnival of the Vanities for DBAs &#124; The Pythian Blog</title>
		<link>http://structureddata.org/2010/07/20/the-core-performance-fundamentals-of-oracle-data-warehousing-%e2%80%93-set-processing-vs-row-processing/#comment-11935</link>
		<dc:creator>Log Buffer #196, A Carnival of the Vanities for DBAs &#124; The Pythian Blog</dc:creator>
		<pubDate>Fri, 23 Jul 2010 21:10:24 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/?p=939#comment-11935</guid>
		<description>[...] that Pythian thinks the same. On the subject of Exadata and data warehousing, Greg posts this week on the core performance fundamentals of Oracle Data Warehousing – set processing vs row [...]</description>
		<content:encoded><![CDATA[<p>[...] that Pythian thinks the same. On the subject of Exadata and data warehousing, Greg posts this week on the core performance fundamentals of Oracle Data Warehousing – set processing vs row [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Greg Rahn</title>
		<link>http://structureddata.org/2010/07/20/the-core-performance-fundamentals-of-oracle-data-warehousing-%e2%80%93-set-processing-vs-row-processing/#comment-11898</link>
		<dc:creator>Greg Rahn</dc:creator>
		<pubDate>Thu, 22 Jul 2010 15:17:14 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/?p=939#comment-11898</guid>
		<description>@Enrique Aviles

Instead of bulk UPDATES/DELETES, use set theory to create the &lt;a href=&quot;http://en.wikipedia.org/wiki/Complement_(set_theory)&quot; rel=&quot;nofollow&quot;&gt;compliment&lt;/a&gt; via CTAS (or similar).  That is, for DELETE recreate what you want to keep, for UPDATE, recreate with the modifications.

There are a few reasons for this:
1) Compression - UPDATES/DELETES are more expensive with compression and they generally leave the data in a much less compressed format
2) Logging - Both UPDATE and DELETE are logging operations and a NOLOGGING CTAS or INSERT /*+ APPEND */ are not.

As a result, it is often faster and better (from a compression point of view) to recreate the segment.</description>
		<content:encoded><![CDATA[<p>@Enrique Aviles</p>
<p>Instead of bulk UPDATES/DELETES, use set theory to create the <a href="http://en.wikipedia.org/wiki/Complement_(set_theory)" rel="nofollow">compliment</a> via CTAS (or similar).  That is, for DELETE recreate what you want to keep, for UPDATE, recreate with the modifications.</p>
<p>There are a few reasons for this:<br />
1) Compression &#8211; UPDATES/DELETES are more expensive with compression and they generally leave the data in a much less compressed format<br />
2) Logging &#8211; Both UPDATE and DELETE are logging operations and a NOLOGGING CTAS or INSERT /*+ APPEND */ are not.</p>
<p>As a result, it is often faster and better (from a compression point of view) to recreate the segment.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Enrique Aviles</title>
		<link>http://structureddata.org/2010/07/20/the-core-performance-fundamentals-of-oracle-data-warehousing-%e2%80%93-set-processing-vs-row-processing/#comment-11896</link>
		<dc:creator>Enrique Aviles</dc:creator>
		<pubDate>Thu, 22 Jul 2010 15:02:15 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/?p=939#comment-11896</guid>
		<description>&lt;a href=&quot;#comment-11891&quot; rel=&quot;nofollow&quot;&gt;@Greg Rahn &lt;/a&gt; 

The difference between SQL bulk updates/deletes and PL/SQL bulk collects is clear. The question is if you are recommending to avoid SQL bulk updates/deletes. If that&#039;s the case, what do you recommend instead?</description>
		<content:encoded><![CDATA[<p><a href="#comment-11891" rel="nofollow">@Greg Rahn </a> </p>
<p>The difference between SQL bulk updates/deletes and PL/SQL bulk collects is clear. The question is if you are recommending to avoid SQL bulk updates/deletes. If that&#8217;s the case, what do you recommend instead?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Greg Rahn</title>
		<link>http://structureddata.org/2010/07/20/the-core-performance-fundamentals-of-oracle-data-warehousing-%e2%80%93-set-processing-vs-row-processing/#comment-11891</link>
		<dc:creator>Greg Rahn</dc:creator>
		<pubDate>Thu, 22 Jul 2010 13:33:00 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/?p=939#comment-11891</guid>
		<description>@Enrique Aviles 

Is &lt;a href=&quot;http://structureddata.org/2010/07/20/the-core-performance-fundamentals-of-oracle-data-warehousing-%e2%80%93-set-processing-vs-row-processing/#comment-11872&quot; rel=&quot;nofollow&quot;&gt;my response&lt;/a&gt; unclear?  Bulk UPDATES and DELETES are just that -- they have nothing to do with PL/SQL BULK COLLECT.</description>
		<content:encoded><![CDATA[<p>@Enrique Aviles </p>
<p>Is <a href="http://structureddata.org/2010/07/20/the-core-performance-fundamentals-of-oracle-data-warehousing-%e2%80%93-set-processing-vs-row-processing/#comment-11872" rel="nofollow">my response</a> unclear?  Bulk UPDATES and DELETES are just that &#8212; they have nothing to do with PL/SQL BULK COLLECT.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Enrique Aviles</title>
		<link>http://structureddata.org/2010/07/20/the-core-performance-fundamentals-of-oracle-data-warehousing-%e2%80%93-set-processing-vs-row-processing/#comment-11888</link>
		<dc:creator>Enrique Aviles</dc:creator>
		<pubDate>Thu, 22 Jul 2010 12:30:39 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/?p=939#comment-11888</guid>
		<description>Great story. I sent it to some of my colleagues to show them upgrading the hardware is just part of the performance equation.

Question: Are you saying we should avoid bulk SQL updates and deletes, PL/SQL bulk collects, or both? If we do that, what else is there if not the dreaded row by row processing? Please clarify!</description>
		<content:encoded><![CDATA[<p>Great story. I sent it to some of my colleagues to show them upgrading the hardware is just part of the performance equation.</p>
<p>Question: Are you saying we should avoid bulk SQL updates and deletes, PL/SQL bulk collects, or both? If we do that, what else is there if not the dreaded row by row processing? Please clarify!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jakub Illner</title>
		<link>http://structureddata.org/2010/07/20/the-core-performance-fundamentals-of-oracle-data-warehousing-%e2%80%93-set-processing-vs-row-processing/#comment-11882</link>
		<dc:creator>Jakub Illner</dc:creator>
		<pubDate>Thu, 22 Jul 2010 08:41:47 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/?p=939#comment-11882</guid>
		<description>I am afraid that not even Exadata will help much with the cursor loops in PLSQL. Exadata dramatically improves the IO throughput but will not help much with single threaded, PLSQL loop processing. I have witnessed that Exadata was actually slightly slower compared with an existing system. But once the code was rewritten to use set based processing it just blazed away.

Also one of the reasons some developers do not use set based processing is that it requires combination of developer and DBA skills such as partition exchange loading, index handling etc. they are not familiar with. I think that tools like ODI can help a lot since they can enforce the use set based processing via the templates (knowledge modules in case of ODI).</description>
		<content:encoded><![CDATA[<p>I am afraid that not even Exadata will help much with the cursor loops in PLSQL. Exadata dramatically improves the IO throughput but will not help much with single threaded, PLSQL loop processing. I have witnessed that Exadata was actually slightly slower compared with an existing system. But once the code was rewritten to use set based processing it just blazed away.</p>
<p>Also one of the reasons some developers do not use set based processing is that it requires combination of developer and DBA skills such as partition exchange loading, index handling etc. they are not familiar with. I think that tools like ODI can help a lot since they can enforce the use set based processing via the templates (knowledge modules in case of ODI).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Greg Rahn</title>
		<link>http://structureddata.org/2010/07/20/the-core-performance-fundamentals-of-oracle-data-warehousing-%e2%80%93-set-processing-vs-row-processing/#comment-11872</link>
		<dc:creator>Greg Rahn</dc:creator>
		<pubDate>Thu, 22 Jul 2010 04:28:49 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/?p=939#comment-11872</guid>
		<description>@Kumar

Bulk updates and deletes using the UPDATE and DELETE SQL commands.  Using BULK COLLECT in PL/SQL is a completely different topic.</description>
		<content:encoded><![CDATA[<p>@Kumar</p>
<p>Bulk updates and deletes using the UPDATE and DELETE SQL commands.  Using BULK COLLECT in PL/SQL is a completely different topic.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kumar</title>
		<link>http://structureddata.org/2010/07/20/the-core-performance-fundamentals-of-oracle-data-warehousing-%e2%80%93-set-processing-vs-row-processing/#comment-11871</link>
		<dc:creator>Kumar</dc:creator>
		<pubDate>Thu, 22 Jul 2010 04:14:08 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/?p=939#comment-11871</guid>
		<description>Greg:
&quot;Bulk updates (and deletes) are simply evil – avoid them at all costs.&quot;
Looking at the example you had given above, did you mean co-related updates and deletes and not Bulk Fetching and processing in PL/SQL

Thank you
Kumar</description>
		<content:encoded><![CDATA[<p>Greg:<br />
&#8220;Bulk updates (and deletes) are simply evil – avoid them at all costs.&#8221;<br />
Looking at the example you had given above, did you mean co-related updates and deletes and not Bulk Fetching and processing in PL/SQL</p>
<p>Thank you<br />
Kumar</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Greg Rahn</title>
		<link>http://structureddata.org/2010/07/20/the-core-performance-fundamentals-of-oracle-data-warehousing-%e2%80%93-set-processing-vs-row-processing/#comment-11854</link>
		<dc:creator>Greg Rahn</dc:creator>
		<pubDate>Wed, 21 Jul 2010 18:00:05 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/?p=939#comment-11854</guid>
		<description>@Tim Hall

I&#039;m adding this to my book of quotes: 
&lt;blockquote&gt;&quot;I [Tim Hall] talk about improving PL/SQL performance by not using PL/SQL.&quot;&lt;/blockquote&gt;

Since you and the others think, and right fully so, that it may seem a bit extreme to pursue Exadata before considering re-engineering, but the rest of the picture hasn&#039;t been filled in yet by me.  You see, query performance is a big part of this as well, but as you probably know, if you have reasonable design and SQL, Oracle&#039;s Parallel Execution (Query) engine takes over and evokes the massive parallelism behind the scenes -- there&#039;s really no way to code in slow to queries.  This is a much different scenario than batch programs.  In this case the current system could not even compare to the query performance they saw with Exadata.  Some of the differences were so large I dare not mention them. ;)</description>
		<content:encoded><![CDATA[<p>@Tim Hall</p>
<p>I&#8217;m adding this to my book of quotes: </p>
<blockquote><p>&#8220;I [Tim Hall] talk about improving PL/SQL performance by not using PL/SQL.&#8221;</p></blockquote>
<p>Since you and the others think, and right fully so, that it may seem a bit extreme to pursue Exadata before considering re-engineering, but the rest of the picture hasn&#8217;t been filled in yet by me.  You see, query performance is a big part of this as well, but as you probably know, if you have reasonable design and SQL, Oracle&#8217;s Parallel Execution (Query) engine takes over and evokes the massive parallelism behind the scenes &#8212; there&#8217;s really no way to code in slow to queries.  This is a much different scenario than batch programs.  In this case the current system could not even compare to the query performance they saw with Exadata.  Some of the differences were so large I dare not mention them. ;)</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: enhanced (User agent is rejected)
Database Caching using disk: basic
Object Caching 406/407 objects using disk: basic

Served from: structureddata.org @ 2012-02-09 18:39:33 -->
