<?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: KEEP Pool &#8211; What is Wrong with this Quote?</title>
	<atom:link href="http://hoopercharles.wordpress.com/2011/08/28/keep-pool-what-is-wrong-with-this-quote/feed/" rel="self" type="application/rss+xml" />
	<link>http://hoopercharles.wordpress.com/2011/08/28/keep-pool-what-is-wrong-with-this-quote/</link>
	<description>Miscellaneous Random Oracle Topics: Stop, Think, ... Understand</description>
	<lastBuildDate>Mon, 13 May 2013 14:10:06 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: Tony Sleight</title>
		<link>http://hoopercharles.wordpress.com/2011/08/28/keep-pool-what-is-wrong-with-this-quote/#comment-3829</link>
		<dc:creator><![CDATA[Tony Sleight]]></dc:creator>
		<pubDate>Thu, 01 Sep 2011 16:02:07 +0000</pubDate>
		<guid isPermaLink="false">http://hoopercharles.wordpress.com/?p=5360#comment-3829</guid>
		<description><![CDATA[Wow, heavy stuff for a novice like myself.

However, I guess the thrust of this article is that you cannot guarantee that an object placed in the KEEP cache will stay in the keep cache. Particularly if you size it to object requirements. I read from the &#039;buffer-states&#039; article by Jonathan Lewis referenced above that cloned consistent read blocks may overspill the KEEP CACHE if not sized sufficiently large.

Taking the article on face value might provoke the question &#039;Why isn&#039;t my object in the KEEP CACHE?&#039; from the unwary.]]></description>
		<content:encoded><![CDATA[<p>Wow, heavy stuff for a novice like myself.</p>
<p>However, I guess the thrust of this article is that you cannot guarantee that an object placed in the KEEP cache will stay in the keep cache. Particularly if you size it to object requirements. I read from the &#8216;buffer-states&#8217; article by Jonathan Lewis referenced above that cloned consistent read blocks may overspill the KEEP CACHE if not sized sufficiently large.</p>
<p>Taking the article on face value might provoke the question &#8216;Why isn&#8217;t my object in the KEEP CACHE?&#8217; from the unwary.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Marcus Mönnig</title>
		<link>http://hoopercharles.wordpress.com/2011/08/28/keep-pool-what-is-wrong-with-this-quote/#comment-3827</link>
		<dc:creator><![CDATA[Marcus Mönnig]]></dc:creator>
		<pubDate>Wed, 31 Aug 2011 07:45:52 +0000</pubDate>
		<guid isPermaLink="false">http://hoopercharles.wordpress.com/?p=5360#comment-3827</guid>
		<description><![CDATA[Reg. where  buffers go in the LRU list(s): Different Oracle documentation, namely the Concept Guide and the Performance Tuning Guide, gives different information regarding where buffer pointers go in the LRU list, sometime it says tail or head of the list, sometimes it says middle of the LRU list. 

I tend to believe it goes to the tail or into the middle and never directly to the head of the list, simply because that would make sense, since a block with a high touch count should be higher in the list than a block that was just loaded into the buffer cache.

It&#039;s somehow a question on which documentation, book, ML note, expert blog post, etc. you believe, since there is no way (at least I don&#039;t know a way) to find out the position of a block in a LRU list. 

@Flado: 

I believe your mental model is closer to reality than the model I gave. 

&gt; I did some experiments several years ago (Oracle 9iR2), and got the impression that the KEEP and DEFAULT pools indeed have 
&gt; different policies for ageing stuff out. I would start a full scan of a large table and repeatedly count the number of buffers 
&gt; with its objd in v$bh. For the DEFAULT pool, the number of buffers grew as long as there were any buffers with status “free,” at 
&gt; which point it stopped growing; if there weren’t any free buffers at the start of the scan, the number of blocks cached from 
&gt; that table never got higher than db_file_multiblock_read_count. In the KEEP pool, on the other hand, the full scan would throw 
&gt; everything else out of the cache.

I think what you saw in your test can directly be explained by your points 1, 2 and 4.]]></description>
		<content:encoded><![CDATA[<p>Reg. where  buffers go in the LRU list(s): Different Oracle documentation, namely the Concept Guide and the Performance Tuning Guide, gives different information regarding where buffer pointers go in the LRU list, sometime it says tail or head of the list, sometimes it says middle of the LRU list. </p>
<p>I tend to believe it goes to the tail or into the middle and never directly to the head of the list, simply because that would make sense, since a block with a high touch count should be higher in the list than a block that was just loaded into the buffer cache.</p>
<p>It&#8217;s somehow a question on which documentation, book, ML note, expert blog post, etc. you believe, since there is no way (at least I don&#8217;t know a way) to find out the position of a block in a LRU list. </p>
<p>@Flado: </p>
<p>I believe your mental model is closer to reality than the model I gave. </p>
<p>&gt; I did some experiments several years ago (Oracle 9iR2), and got the impression that the KEEP and DEFAULT pools indeed have<br />
&gt; different policies for ageing stuff out. I would start a full scan of a large table and repeatedly count the number of buffers<br />
&gt; with its objd in v$bh. For the DEFAULT pool, the number of buffers grew as long as there were any buffers with status “free,” at<br />
&gt; which point it stopped growing; if there weren’t any free buffers at the start of the scan, the number of blocks cached from<br />
&gt; that table never got higher than db_file_multiblock_read_count. In the KEEP pool, on the other hand, the full scan would throw<br />
&gt; everything else out of the cache.</p>
<p>I think what you saw in your test can directly be explained by your points 1, 2 and 4.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Charles Hooper</title>
		<link>http://hoopercharles.wordpress.com/2011/08/28/keep-pool-what-is-wrong-with-this-quote/#comment-3825</link>
		<dc:creator><![CDATA[Charles Hooper]]></dc:creator>
		<pubDate>Tue, 30 Aug 2011 16:05:27 +0000</pubDate>
		<guid isPermaLink="false">http://hoopercharles.wordpress.com/?p=5360#comment-3825</guid>
		<description><![CDATA[Flado,

+1 - the paragraph (and the whole recipe) does not imply that an ALTER command may be used with an existing segment, but that it must be set when the segment is created.]]></description>
		<content:encoded><![CDATA[<p>Flado,</p>
<p>+1 &#8211; the paragraph (and the whole recipe) does not imply that an ALTER command may be used with an existing segment, but that it must be set when the segment is created.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Flado</title>
		<link>http://hoopercharles.wordpress.com/2011/08/28/keep-pool-what-is-wrong-with-this-quote/#comment-3824</link>
		<dc:creator><![CDATA[Flado]]></dc:creator>
		<pubDate>Tue, 30 Aug 2011 14:56:00 +0000</pubDate>
		<guid isPermaLink="false">http://hoopercharles.wordpress.com/?p=5360#comment-3824</guid>
		<description><![CDATA[&gt; default behaviour for indexes is that blocks retrieved for them will go to the top of the LRU list ...

Marcus,

I think I&#039;ve read somewhere that the distinction is along the lines of &quot;sequential reads&quot; vs. &quot;scattered reads&quot;, and then subject to the &quot;small table threshold&quot;. I have this (oversimplified and outdated) mental model for the buffer cache policy: 
1. scattered reads from large segments go into the cold end of the LRU list.
2. everything else (either small or read via a &quot;sequential read&quot;) goes into the middle of the LRU list.
3. CACHE moves segments form Case 1 to Case 2 in the DEFAULT pool and any nK-pools.
4. The KEEP pool has only Case 2.
5. The RECYCLE pool has only Case 1.

I did some experiments several years ago (Oracle 9iR2), and got the impression that the KEEP and DEFAULT pools indeed have different policies for ageing stuff out. I would start a full scan of a large table and repeatedly count the number of buffers with its objd in v$bh. For the DEFAULT pool, the number of buffers grew as long as there were any buffers with status &quot;free,&quot; at which point it stopped growing; if there weren&#039;t any free buffers at the start of the scan, the number of blocks cached from that table never got higher than db_file_multiblock_read_count. In the KEEP pool, on the other hand, the full scan would throw everything else out of the cache.
Meanwhile there are multiple subpools and therefore multiple LRU lists, so things are definitely not so simple anymore.

BTW, I think no blocks can go directly to the top (the hot end) of the LRU; buffers have to &quot;earn&quot; their way there by increasing their touch counts (which is pretty hard, since not every &quot;get&quot; counts as a &quot;touch&quot;).

Cheers,
Flado]]></description>
		<content:encoded><![CDATA[<p>&gt; default behaviour for indexes is that blocks retrieved for them will go to the top of the LRU list &#8230;</p>
<p>Marcus,</p>
<p>I think I&#8217;ve read somewhere that the distinction is along the lines of &#8220;sequential reads&#8221; vs. &#8220;scattered reads&#8221;, and then subject to the &#8220;small table threshold&#8221;. I have this (oversimplified and outdated) mental model for the buffer cache policy:<br />
1. scattered reads from large segments go into the cold end of the LRU list.<br />
2. everything else (either small or read via a &#8220;sequential read&#8221;) goes into the middle of the LRU list.<br />
3. CACHE moves segments form Case 1 to Case 2 in the DEFAULT pool and any nK-pools.<br />
4. The KEEP pool has only Case 2.<br />
5. The RECYCLE pool has only Case 1.</p>
<p>I did some experiments several years ago (Oracle 9iR2), and got the impression that the KEEP and DEFAULT pools indeed have different policies for ageing stuff out. I would start a full scan of a large table and repeatedly count the number of buffers with its objd in v$bh. For the DEFAULT pool, the number of buffers grew as long as there were any buffers with status &#8220;free,&#8221; at which point it stopped growing; if there weren&#8217;t any free buffers at the start of the scan, the number of blocks cached from that table never got higher than db_file_multiblock_read_count. In the KEEP pool, on the other hand, the full scan would throw everything else out of the cache.<br />
Meanwhile there are multiple subpools and therefore multiple LRU lists, so things are definitely not so simple anymore.</p>
<p>BTW, I think no blocks can go directly to the top (the hot end) of the LRU; buffers have to &#8220;earn&#8221; their way there by increasing their touch counts (which is pretty hard, since not every &#8220;get&#8221; counts as a &#8220;touch&#8221;).</p>
<p>Cheers,<br />
Flado</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Flado</title>
		<link>http://hoopercharles.wordpress.com/2011/08/28/keep-pool-what-is-wrong-with-this-quote/#comment-3822</link>
		<dc:creator><![CDATA[Flado]]></dc:creator>
		<pubDate>Tue, 30 Aug 2011 13:46:41 +0000</pubDate>
		<guid isPermaLink="false">http://hoopercharles.wordpress.com/?p=5360#comment-3822</guid>
		<description><![CDATA[&gt; you must specify the KEEP buffer pool [when creating the segment].
I&#039;m not sure whether this is a paraphrasing artefact, but if this is correct, then I am wasting 90 GiB of RAM on my empty KEEP pool, since I assigned the segments using ALTER ... STORAGE (buffer_pool keep)! OMG!]]></description>
		<content:encoded><![CDATA[<p>&gt; you must specify the KEEP buffer pool [when creating the segment].<br />
I&#8217;m not sure whether this is a paraphrasing artefact, but if this is correct, then I am wasting 90 GiB of RAM on my empty KEEP pool, since I assigned the segments using ALTER &#8230; STORAGE (buffer_pool keep)! OMG!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Charles Hooper</title>
		<link>http://hoopercharles.wordpress.com/2011/08/28/keep-pool-what-is-wrong-with-this-quote/#comment-3821</link>
		<dc:creator><![CDATA[Charles Hooper]]></dc:creator>
		<pubDate>Tue, 30 Aug 2011 13:40:06 +0000</pubDate>
		<guid isPermaLink="false">http://hoopercharles.wordpress.com/?p=5360#comment-3821</guid>
		<description><![CDATA[Marcus,

You mentioned several points that will be in my final review of the book for recipe 3-2 (I did not think that I provided enough of a quote for you to make those observations :-) ).  I was not aware that index blocks go to the top end of the buffer pool - I thought that all blocks were inserted in the middle (of course it was not long ago that I thought that blocks read by full table scan were inserted into the LRU (least recently used) end.  Kind of makes you wonder what happens when serial direct path read is used in 11.1.0 and later rather than db file scattered reads - would we still be ensuring that frequently used segments stay cached in the buffer pool ?

The following is from my review for recipe 3-2 of this book (so far I have only double-checked recipes 3-1 through 3-10, so only the review of those sections has been finalized... I might need to reduce the sarcasm when the book review is posted):
&lt;blockquote&gt;
•	In recipe 3-2 the authors state, “if you want a segment to be cached (or pinned) in the buffer pool, you must specify the KEEP buffer pool [when creating the segment].”  Something just doesn’t seem to be right (or complete) about this statement – for one, I wonder what the &lt;a href=&quot;http://download.oracle.com/docs/cd/E14072_01/server.112/e10592/statements_7002.htm#i2215507&quot; rel=&quot;nofollow&quot;&gt;CACHE and  NOCACHE&lt;/a&gt; clauses might affect?  Secondly, this statement might be implying that blocks belonging to an object will only remain in the buffer cache if those objects are assigned to the KEEP buffer cache.  The recipe states that the approximate size of the KEEP buffer pool can be determined by “summing up the size of all candidate objects for this pool” – great, now what happens when Oracle Database creates up to six (&lt;a href=&quot;http://books.google.com/books?id=tUNtyMCwDWQC&amp;pg=PA188#v=onepage&amp;q&amp;f=false&quot; rel=&quot;nofollow&quot;&gt;and potentially many more&lt;/a&gt;) consistent read versions of the objects’ blocks (&lt;a href=&quot;http://jonathanlewis.wordpress.com/2011/03/14/buffer-states/&quot; rel=&quot;nofollow&quot;&gt;reference&lt;/a&gt;)?  The last two paragraphs of this recipe seem to indicate that it is the segments themselves (apparently all blocks) that are aged out of the buffer cache when space is needed to cache other blocks, rather than the segments’ blocks that are aged out of the cache – additional clarity is needed in these two paragraphs.  The second to last paragraph also makes a claim that I am not sure how to interpret: “Oracle figures that if a single segment takes up more than 10% of (nonsequential) physical reads, it’s a large segment, for the purpose of deciding if it needs to use the KEEP or RECYCLE buffer pools.”  The SQL statement provided in recipe 3-2 is also found in the &lt;a href=&quot;http://download.oracle.com/docs/cd/B10500_01/server.920/a96533/memory.htm#33798&quot; rel=&quot;nofollow&quot;&gt;Oracle Database 9.2 Performance Tuning Manual&lt;/a&gt;, but that SQL statement potentially produces &lt;a href=&quot;http://jonathanlewis.wordpress.com/2006/11/02/but-its-in-the-manual/&quot; rel=&quot;nofollow&quot;&gt;misleading information&lt;/a&gt;. (pages 87-88)
&lt;/blockquote&gt;

I would suggest that Marcus&#039; explanation is as good or better than mine, and Nuno and Surachart both touched on important points.]]></description>
		<content:encoded><![CDATA[<p>Marcus,</p>
<p>You mentioned several points that will be in my final review of the book for recipe 3-2 (I did not think that I provided enough of a quote for you to make those observations <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  ).  I was not aware that index blocks go to the top end of the buffer pool &#8211; I thought that all blocks were inserted in the middle (of course it was not long ago that I thought that blocks read by full table scan were inserted into the LRU (least recently used) end.  Kind of makes you wonder what happens when serial direct path read is used in 11.1.0 and later rather than db file scattered reads &#8211; would we still be ensuring that frequently used segments stay cached in the buffer pool ?</p>
<p>The following is from my review for recipe 3-2 of this book (so far I have only double-checked recipes 3-1 through 3-10, so only the review of those sections has been finalized&#8230; I might need to reduce the sarcasm when the book review is posted):</p>
<blockquote><p>
•	In recipe 3-2 the authors state, “if you want a segment to be cached (or pinned) in the buffer pool, you must specify the KEEP buffer pool [when creating the segment].”  Something just doesn’t seem to be right (or complete) about this statement – for one, I wonder what the <a href="http://download.oracle.com/docs/cd/E14072_01/server.112/e10592/statements_7002.htm#i2215507" rel="nofollow">CACHE and  NOCACHE</a> clauses might affect?  Secondly, this statement might be implying that blocks belonging to an object will only remain in the buffer cache if those objects are assigned to the KEEP buffer cache.  The recipe states that the approximate size of the KEEP buffer pool can be determined by “summing up the size of all candidate objects for this pool” – great, now what happens when Oracle Database creates up to six (<a href="http://books.google.com/books?id=tUNtyMCwDWQC&amp;pg=PA188#v=onepage&amp;q&amp;f=false" rel="nofollow">and potentially many more</a>) consistent read versions of the objects’ blocks (<a href="http://jonathanlewis.wordpress.com/2011/03/14/buffer-states/" rel="nofollow">reference</a>)?  The last two paragraphs of this recipe seem to indicate that it is the segments themselves (apparently all blocks) that are aged out of the buffer cache when space is needed to cache other blocks, rather than the segments’ blocks that are aged out of the cache – additional clarity is needed in these two paragraphs.  The second to last paragraph also makes a claim that I am not sure how to interpret: “Oracle figures that if a single segment takes up more than 10% of (nonsequential) physical reads, it’s a large segment, for the purpose of deciding if it needs to use the KEEP or RECYCLE buffer pools.”  The SQL statement provided in recipe 3-2 is also found in the <a href="http://download.oracle.com/docs/cd/B10500_01/server.920/a96533/memory.htm#33798" rel="nofollow">Oracle Database 9.2 Performance Tuning Manual</a>, but that SQL statement potentially produces <a href="http://jonathanlewis.wordpress.com/2006/11/02/but-its-in-the-manual/" rel="nofollow">misleading information</a>. (pages 87-88)
</p></blockquote>
<p>I would suggest that Marcus&#8217; explanation is as good or better than mine, and Nuno and Surachart both touched on important points.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Marcus Mönnig</title>
		<link>http://hoopercharles.wordpress.com/2011/08/28/keep-pool-what-is-wrong-with-this-quote/#comment-3820</link>
		<dc:creator><![CDATA[Marcus Mönnig]]></dc:creator>
		<pubDate>Tue, 30 Aug 2011 13:06:51 +0000</pubDate>
		<guid isPermaLink="false">http://hoopercharles.wordpress.com/?p=5360#comment-3820</guid>
		<description><![CDATA[“You can use multiple buffer pools instead of Oracle’s single default buffer pool, to ensure that frequently used segments stay cached in the buffer pool without being recycled out of the buffer pool… &quot;

I think this is worded generally enough to be correct. :-)  You might want to argue if segments are cached in the buffer pool or blocks, but well...

&quot;For example, if you want a segment to be cached (or pinned) in the buffer pool, you must specify the KEEP buffer pool [when creating the segment].”

Noons already commented on &quot;cached or pinned&quot;. 

My addtional 2 cents: Specifying KEEP does not guarantee that the buffer are kept in the buffer cache. KEEP, DEFAULT and RECYCLE only are three different LRU lists that can help you prevent &quot;unimportant&quot; blocks aging out &quot;important&quot; blocks out of the buffer cache by classifying their importance in regards to lifetime in the buffer cache.

The CACHE keyword in a create table command indicates that blocks retrieved for this table should go to the top of the (KEEP, DEFAULT or RECYLE) LRU list, while as default these blocks will go to the lower end of the list, where they will age out quickly. I think, but I am not sure, the default behaviour for indexes is that blocks retrieved for them will go to the top of the LRU list, so the CACHE keyword makes blocks for table segements act like blocks for index segements regarding aging out. 

On a side note, I think the default behaviour for index organized tables in that regard is like indexes (or tables with the CACHE option). This means that an (accidential)  full table scan of an (large) IOT will really mess up the buffer cache (buffer cache hit ratio going down).]]></description>
		<content:encoded><![CDATA[<p>“You can use multiple buffer pools instead of Oracle’s single default buffer pool, to ensure that frequently used segments stay cached in the buffer pool without being recycled out of the buffer pool… &#8221;</p>
<p>I think this is worded generally enough to be correct. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />   You might want to argue if segments are cached in the buffer pool or blocks, but well&#8230;</p>
<p>&#8220;For example, if you want a segment to be cached (or pinned) in the buffer pool, you must specify the KEEP buffer pool [when creating the segment].”</p>
<p>Noons already commented on &#8220;cached or pinned&#8221;. </p>
<p>My addtional 2 cents: Specifying KEEP does not guarantee that the buffer are kept in the buffer cache. KEEP, DEFAULT and RECYCLE only are three different LRU lists that can help you prevent &#8220;unimportant&#8221; blocks aging out &#8220;important&#8221; blocks out of the buffer cache by classifying their importance in regards to lifetime in the buffer cache.</p>
<p>The CACHE keyword in a create table command indicates that blocks retrieved for this table should go to the top of the (KEEP, DEFAULT or RECYLE) LRU list, while as default these blocks will go to the lower end of the list, where they will age out quickly. I think, but I am not sure, the default behaviour for indexes is that blocks retrieved for them will go to the top of the LRU list, so the CACHE keyword makes blocks for table segements act like blocks for index segements regarding aging out. </p>
<p>On a side note, I think the default behaviour for index organized tables in that regard is like indexes (or tables with the CACHE option). This means that an (accidential)  full table scan of an (large) IOT will really mess up the buffer cache (buffer cache hit ratio going down).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Charles Hooper</title>
		<link>http://hoopercharles.wordpress.com/2011/08/28/keep-pool-what-is-wrong-with-this-quote/#comment-3815</link>
		<dc:creator><![CDATA[Charles Hooper]]></dc:creator>
		<pubDate>Mon, 29 Aug 2011 09:29:25 +0000</pubDate>
		<guid isPermaLink="false">http://hoopercharles.wordpress.com/?p=5360#comment-3815</guid>
		<description><![CDATA[Nuno,

You touched on an important point here.  One might be wondering: What is the purpose of the CACHE keyword in a CREATE TABLE command?  It would be redundant if it meant the same thing as use the KEEP buffer pool.]]></description>
		<content:encoded><![CDATA[<p>Nuno,</p>
<p>You touched on an important point here.  One might be wondering: What is the purpose of the CACHE keyword in a CREATE TABLE command?  It would be redundant if it meant the same thing as use the KEEP buffer pool.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Noons</title>
		<link>http://hoopercharles.wordpress.com/2011/08/28/keep-pool-what-is-wrong-with-this-quote/#comment-3814</link>
		<dc:creator><![CDATA[Noons]]></dc:creator>
		<pubDate>Mon, 29 Aug 2011 07:15:41 +0000</pubDate>
		<guid isPermaLink="false">http://hoopercharles.wordpress.com/?p=5360#comment-3814</guid>
		<description><![CDATA[&quot;if you want a segment to be cached (or pinned) in the buffer pool&quot;
that to me is the biggest problem.  &quot;pin&quot; and &quot;cache&quot; are not an &quot;or&quot; proposition here. The buffer pool WILL cache, regardless of the KEEP pool setting.]]></description>
		<content:encoded><![CDATA[<p>&#8220;if you want a segment to be cached (or pinned) in the buffer pool&#8221;<br />
that to me is the biggest problem.  &#8220;pin&#8221; and &#8220;cache&#8221; are not an &#8220;or&#8221; proposition here. The buffer pool WILL cache, regardless of the KEEP pool setting.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Surachart</title>
		<link>http://hoopercharles.wordpress.com/2011/08/28/keep-pool-what-is-wrong-with-this-quote/#comment-3813</link>
		<dc:creator><![CDATA[Surachart]]></dc:creator>
		<pubDate>Mon, 29 Aug 2011 02:11:40 +0000</pubDate>
		<guid isPermaLink="false">http://hoopercharles.wordpress.com/?p=5360#comment-3813</guid>
		<description><![CDATA[To Charles, 

You right, It should mention about &quot;KEEP BUFFER POOL Does Not Work for Large Objects on 11g [ID 1081553.1]&quot; also, that&#039;s recipe to aware for readers.
Thank You for your items.]]></description>
		<content:encoded><![CDATA[<p>To Charles, </p>
<p>You right, It should mention about &#8220;KEEP BUFFER POOL Does Not Work for Large Objects on 11g [ID 1081553.1]&#8221; also, that&#8217;s recipe to aware for readers.<br />
Thank You for your items.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
