<?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: Philosophy – 1</title>
	<atom:link href="http://jonathanlewis.wordpress.com/2009/05/06/philosophy-1/feed/" rel="self" type="application/rss+xml" />
	<link>http://jonathanlewis.wordpress.com/2009/05/06/philosophy-1/</link>
	<description>Just another Oracle weblog</description>
	<lastBuildDate>Sat, 18 May 2013 11:04:10 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: Alon Principal</title>
		<link>http://jonathanlewis.wordpress.com/2009/05/06/philosophy-1/#comment-34009</link>
		<dc:creator><![CDATA[Alon Principal]]></dc:creator>
		<pubDate>Thu, 30 Jul 2009 21:03:02 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=1128#comment-34009</guid>
		<description><![CDATA[Binds peeking is alright, if you don&#039;t have histograms then the only difference it makes is mostly in range predicates and in a little more scenarios. And you want some intervention in choosing execution plan for ranges because otherwise you&#039;ll end with very bad performance. I agree with you that binds peeking may sometimes cause troubles and I think that this feature should be improved as soon as possible into some &quot;smarter&quot; peeking that will peek at the binds at each execution and if it sees that many times the &quot;important&quot; values for peeking are different it&#039;ll reparse the query...]]></description>
		<content:encoded><![CDATA[<p>Binds peeking is alright, if you don&#8217;t have histograms then the only difference it makes is mostly in range predicates and in a little more scenarios. And you want some intervention in choosing execution plan for ranges because otherwise you&#8217;ll end with very bad performance. I agree with you that binds peeking may sometimes cause troubles and I think that this feature should be improved as soon as possible into some &#8220;smarter&#8221; peeking that will peek at the binds at each execution and if it sees that many times the &#8220;important&#8221; values for peeking are different it&#8217;ll reparse the query&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Aldridge</title>
		<link>http://jonathanlewis.wordpress.com/2009/05/06/philosophy-1/#comment-33215</link>
		<dc:creator><![CDATA[David Aldridge]]></dc:creator>
		<pubDate>Tue, 02 Jun 2009 10:11:07 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=1128#comment-33215</guid>
		<description><![CDATA[I think you&#039;d use bind variables for OLTP queries of course, and rely on dynamic sampling for the reporting queries (which is very often more flexible and accurate than histograms anyway, particularly when data changes quickly or you have multicolumn predicates).]]></description>
		<content:encoded><![CDATA[<p>I think you&#8217;d use bind variables for OLTP queries of course, and rely on dynamic sampling for the reporting queries (which is very often more flexible and accurate than histograms anyway, particularly when data changes quickly or you have multicolumn predicates).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Darrah</title>
		<link>http://jonathanlewis.wordpress.com/2009/05/06/philosophy-1/#comment-33091</link>
		<dc:creator><![CDATA[John Darrah]]></dc:creator>
		<pubDate>Thu, 21 May 2009 03:07:29 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=1128#comment-33091</guid>
		<description><![CDATA[This is why bind variable peeking is, in my opinion, one of the worst features Oracle has ever added into the rdbms.  It attempts to make a compromise on two things that are diametrically opposed to one another.  I&#039;ve spent more time in the last few years dealing with system stability / performance problems because of bind variable peeking and cursor_sharing = force than I care to think about.  
The first time I discovered bind peeking was causing plans to flip seemingly at random it was cool; now it&#039;s just annoying.]]></description>
		<content:encoded><![CDATA[<p>This is why bind variable peeking is, in my opinion, one of the worst features Oracle has ever added into the rdbms.  It attempts to make a compromise on two things that are diametrically opposed to one another.  I&#8217;ve spent more time in the last few years dealing with system stability / performance problems because of bind variable peeking and cursor_sharing = force than I care to think about.<br />
The first time I discovered bind peeking was causing plans to flip seemingly at random it was cool; now it&#8217;s just annoying.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kerry Osborne</title>
		<link>http://jonathanlewis.wordpress.com/2009/05/06/philosophy-1/#comment-33049</link>
		<dc:creator><![CDATA[Kerry Osborne]]></dc:creator>
		<pubDate>Tue, 19 May 2009 02:54:35 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=1128#comment-33049</guid>
		<description><![CDATA[Ha! This is the best (simplest) explantion of an extremely complicated problem that I&#039;ve seen. I&#039;ve tried to explain it numerous times with less than satisfactory results, and I think I have a decent command of the English language (even if it&#039;s not proper English). Well done!

Kerry]]></description>
		<content:encoded><![CDATA[<p>Ha! This is the best (simplest) explantion of an extremely complicated problem that I&#8217;ve seen. I&#8217;ve tried to explain it numerous times with less than satisfactory results, and I think I have a decent command of the English language (even if it&#8217;s not proper English). Well done!</p>
<p>Kerry</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: PdV</title>
		<link>http://jonathanlewis.wordpress.com/2009/05/06/philosophy-1/#comment-33032</link>
		<dc:creator><![CDATA[PdV]]></dc:creator>
		<pubDate>Mon, 18 May 2009 05:53:58 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=1128#comment-33032</guid>
		<description><![CDATA[Seems like the start of an Excellent Series Jonathan.

Simple rules that can be explained, understood and applied by Everyone.
Fundamentals, by any other name...

Looking forward to the Next Philosophy. 

Regards, 
PdV
(off looking for a printer and a frame somewhere)]]></description>
		<content:encoded><![CDATA[<p>Seems like the start of an Excellent Series Jonathan.</p>
<p>Simple rules that can be explained, understood and applied by Everyone.<br />
Fundamentals, by any other name&#8230;</p>
<p>Looking forward to the Next Philosophy. </p>
<p>Regards,<br />
PdV<br />
(off looking for a printer and a frame somewhere)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ashish</title>
		<link>http://jonathanlewis.wordpress.com/2009/05/06/philosophy-1/#comment-33031</link>
		<dc:creator><![CDATA[Ashish]]></dc:creator>
		<pubDate>Mon, 18 May 2009 04:34:04 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=1128#comment-33031</guid>
		<description><![CDATA[Hi Jonathan,

What do you suggest in a hybrid system? 
I mean there are instances where a huge RAC database serves both OLTP as well as reporting needs.
The source tables remain the same but the nature of queries will be different.

Regards,
Ashish]]></description>
		<content:encoded><![CDATA[<p>Hi Jonathan,</p>
<p>What do you suggest in a hybrid system?<br />
I mean there are instances where a huge RAC database serves both OLTP as well as reporting needs.<br />
The source tables remain the same but the nature of queries will be different.</p>
<p>Regards,<br />
Ashish</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Don Seiler</title>
		<link>http://jonathanlewis.wordpress.com/2009/05/06/philosophy-1/#comment-33020</link>
		<dc:creator><![CDATA[Don Seiler]]></dc:creator>
		<pubDate>Sat, 16 May 2009 20:28:03 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=1128#comment-33020</guid>
		<description><![CDATA[One thing that I&#039;m constantly reminding client developers is to not use bind variables for partition key values.  Greg Rahn pointed out the problem to me on oracle-l over a year ago, and it&#039;s something I see a lot now.  Not only does it generate the KEY:KEY plan, but in Oracle &lt; 10.2.0.3, there&#039;s a bug that results in an explosion of cursors that could choke a system.]]></description>
		<content:encoded><![CDATA[<p>One thing that I&#8217;m constantly reminding client developers is to not use bind variables for partition key values.  Greg Rahn pointed out the problem to me on oracle-l over a year ago, and it&#8217;s something I see a lot now.  Not only does it generate the KEY:KEY plan, but in Oracle &lt; 10.2.0.3, there&#8217;s a bug that results in an explosion of cursors that could choke a system.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jonathan Lewis</title>
		<link>http://jonathanlewis.wordpress.com/2009/05/06/philosophy-1/#comment-32936</link>
		<dc:creator><![CDATA[Jonathan Lewis]]></dc:creator>
		<pubDate>Fri, 08 May 2009 21:42:04 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=1128#comment-32936</guid>
		<description><![CDATA[Hemant:

&lt;em&gt;
Your last sentence says :
Selectively use Histograms.
Selectively use Bind Variables.
&lt;/em&gt;

No, it doesn&#039;t, it says:

&lt;em&gt;&quot;Remember that [i.e. the contradiction] and you will remember to be cautious about sticking histograms into OLTP systems, and won’t be tempted to turn absolutely every literal into a bind variable.&quot;&lt;/em&gt;

It is attempting to help people understand the fundamental issue, NOT memorise a sound-bite.]]></description>
		<content:encoded><![CDATA[<p>Hemant:</p>
<p><em><br />
Your last sentence says :<br />
Selectively use Histograms.<br />
Selectively use Bind Variables.<br />
</em></p>
<p>No, it doesn&#8217;t, it says:</p>
<p><em>&#8220;Remember that [i.e. the contradiction] and you will remember to be cautious about sticking histograms into OLTP systems, and won’t be tempted to turn absolutely every literal into a bind variable.&#8221;</em></p>
<p>It is attempting to help people understand the fundamental issue, NOT memorise a sound-bite.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jonathan Lewis</title>
		<link>http://jonathanlewis.wordpress.com/2009/05/06/philosophy-1/#comment-32935</link>
		<dc:creator><![CDATA[Jonathan Lewis]]></dc:creator>
		<pubDate>Fri, 08 May 2009 21:36:35 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=1128#comment-32935</guid>
		<description><![CDATA[Vadim,
There is no fundamental difference in the process of optimisation, but there may be differences in the wisdom of reusing the execution plan the next time the same query re-appears.

The presentation you references was a nice little item: it reminded me of this comment from page three of chapter 1 of Cost Based Oracle - Fundamentals:

&lt;em&gt;&quot;Moreover, both 9i and 10g collect run-time statistics in the views v$sql_plan_statistics and v$sql_plan_statistics_all which could, in theory, be fed back to the optimizer to give it a second chance at optimizing a query if the actual statistics differ too much from the assumptions made by the optimizer.&quot;&lt;/em&gt;

In fact, anyone who was at a meeting of the Boston OUG in October 2004 may remember a presentation I did where I started by describing and (apparently) demonstrating this behaviour in a version of Oracle that I claimed was an Alpha release of 10.0 (but was actually 9i playing dirty tricks).
]]></description>
		<content:encoded><![CDATA[<p>Vadim,<br />
There is no fundamental difference in the process of optimisation, but there may be differences in the wisdom of reusing the execution plan the next time the same query re-appears.</p>
<p>The presentation you references was a nice little item: it reminded me of this comment from page three of chapter 1 of Cost Based Oracle &#8211; Fundamentals:</p>
<p><em>&#8220;Moreover, both 9i and 10g collect run-time statistics in the views v$sql_plan_statistics and v$sql_plan_statistics_all which could, in theory, be fed back to the optimizer to give it a second chance at optimizing a query if the actual statistics differ too much from the assumptions made by the optimizer.&#8221;</em></p>
<p>In fact, anyone who was at a meeting of the Boston OUG in October 2004 may remember a presentation I did where I started by describing and (apparently) demonstrating this behaviour in a version of Oracle that I claimed was an Alpha release of 10.0 (but was actually 9i playing dirty tricks).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: peter</title>
		<link>http://jonathanlewis.wordpress.com/2009/05/06/philosophy-1/#comment-32927</link>
		<dc:creator><![CDATA[peter]]></dc:creator>
		<pubDate>Fri, 08 May 2009 05:50:24 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/?p=1128#comment-32927</guid>
		<description><![CDATA[Hi Jonathan, what&#039;s your philosophy on designing a decision support system/data warehouse that makes heavy use of histograms but also need to guard against SQL injection as a very high priority?  Without using bind variables, is it still possible to make your database bullet proof?]]></description>
		<content:encoded><![CDATA[<p>Hi Jonathan, what&#8217;s your philosophy on designing a decision support system/data warehouse that makes heavy use of histograms but also need to guard against SQL injection as a very high priority?  Without using bind variables, is it still possible to make your database bullet proof?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
