<?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: Thinking Big</title>
	<atom:link href="http://jonathanlewis.wordpress.com/2007/03/18/thinking-big/feed/" rel="self" type="application/rss+xml" />
	<link>http://jonathanlewis.wordpress.com/2007/03/18/thinking-big/</link>
	<description>Just another Oracle weblog</description>
	<lastBuildDate>Fri, 24 May 2013 13:27:07 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: Jonathan Lewis</title>
		<link>http://jonathanlewis.wordpress.com/2007/03/18/thinking-big/#comment-30437</link>
		<dc:creator><![CDATA[Jonathan Lewis]]></dc:creator>
		<pubDate>Tue, 11 Mar 2008 20:33:14 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/2007/03/18/thinking-big/#comment-30437</guid>
		<description><![CDATA[I&#039;ve just referenced this note from an item on the Oracle forums, and noticed that it&#039;s not obvious how I got from 16 byte keys to 200 entries per block when running at 70% usage.

You have to know that a standard b-tree index entry is actually going to be:  key size + 2 bytes row overhead + 2 bytes row pointer + 6 bytes rowid + a possible one byte for rowid length for a total of 27 bytes.  (And if you&#039;ve forgotten to include length bytes in your key length, it may be a little more).]]></description>
		<content:encoded><![CDATA[<p>I&#8217;ve just referenced this note from an item on the Oracle forums, and noticed that it&#8217;s not obvious how I got from 16 byte keys to 200 entries per block when running at 70% usage.</p>
<p>You have to know that a standard b-tree index entry is actually going to be:  key size + 2 bytes row overhead + 2 bytes row pointer + 6 bytes rowid + a possible one byte for rowid length for a total of 27 bytes.  (And if you&#8217;ve forgotten to include length bytes in your key length, it may be a little more).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Hit Ratios (4) &#171; Oracle Scratchpad</title>
		<link>http://jonathanlewis.wordpress.com/2007/03/18/thinking-big/#comment-21479</link>
		<dc:creator><![CDATA[Hit Ratios (4) &#171; Oracle Scratchpad]]></dc:creator>
		<pubDate>Wed, 26 Sep 2007 21:23:56 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/2007/03/18/thinking-big/#comment-21479</guid>
		<description><![CDATA[[...] key index has a height of four but still fits comfortably in 18G. Based on the example shown in this entry, 6G of memory would be adequate for such a index if you had a 16 byte key and the index was [...]]]></description>
		<content:encoded><![CDATA[<p>[...] key index has a height of four but still fits comfortably in 18G. Based on the example shown in this entry, 6G of memory would be adequate for such a index if you had a 16 byte key and the index was [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jonathan Lewis</title>
		<link>http://jonathanlewis.wordpress.com/2007/03/18/thinking-big/#comment-5125</link>
		<dc:creator><![CDATA[Jonathan Lewis]]></dc:creator>
		<pubDate>Sun, 08 Apr 2007 16:00:26 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/2007/03/18/thinking-big/#comment-5125</guid>
		<description><![CDATA[Dave,

Whatever else this does, it will probably add a significant overhead to data maintenance. The &quot;skinny table&quot; approach is one that should be used as carefully as the &quot;add another index&quot; approach.  i.e. weighed carefully in terms of resource costs and benefits.

If you really have 84 &quot;atomic&quot; data items per employee, then you ought to have 84 data columns in a table.  You might then use row-level triggers to populate a few skinny tables with the subset of columns used by a few very popular queries. 

I certainly wouldn&#039;t consisder creating 84 tables with one data item per table - the join costs of putting together the data for even a simple query would be prohibitive.]]></description>
		<content:encoded><![CDATA[<p>Dave,</p>
<p>Whatever else this does, it will probably add a significant overhead to data maintenance. The &#8220;skinny table&#8221; approach is one that should be used as carefully as the &#8220;add another index&#8221; approach.  i.e. weighed carefully in terms of resource costs and benefits.</p>
<p>If you really have 84 &#8220;atomic&#8221; data items per employee, then you ought to have 84 data columns in a table.  You might then use row-level triggers to populate a few skinny tables with the subset of columns used by a few very popular queries. </p>
<p>I certainly wouldn&#8217;t consisder creating 84 tables with one data item per table &#8211; the join costs of putting together the data for even a simple query would be prohibitive.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: dave</title>
		<link>http://jonathanlewis.wordpress.com/2007/03/18/thinking-big/#comment-4976</link>
		<dc:creator><![CDATA[dave]]></dc:creator>
		<pubDate>Fri, 06 Apr 2007 12:07:56 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/2007/03/18/thinking-big/#comment-4976</guid>
		<description><![CDATA[What advantges do skinny tables provide? I currently have a database consisting of 84 data elements per employee.  I am considering creating a skinny  table for each and every data element( index field, data value).  My database has approximately 150 million records whcih spans a 20 year period of time.

I believe the skinny table design will significantly improve the performance of all my applications (more responsive to queries) at a major sacrifice of utilizing more disk storage just for indices.  My estimate is 90% of the available storage ( 800 Gigabytes) will be used for indices alone and 6% will be the actual data values

Appreciate any additional comments of pros and cons for use of skinny tables.]]></description>
		<content:encoded><![CDATA[<p>What advantges do skinny tables provide? I currently have a database consisting of 84 data elements per employee.  I am considering creating a skinny  table for each and every data element( index field, data value).  My database has approximately 150 million records whcih spans a 20 year period of time.</p>
<p>I believe the skinny table design will significantly improve the performance of all my applications (more responsive to queries) at a major sacrifice of utilizing more disk storage just for indices.  My estimate is 90% of the available storage ( 800 Gigabytes) will be used for indices alone and 6% will be the actual data values</p>
<p>Appreciate any additional comments of pros and cons for use of skinny tables.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: SAN Array Cache and Filers Hate Sequential Writes &#171; Kevin Closson&#8217;s Oracle Blog: Platform, Storage &#38; Clustering Topics Related to Oracle Databases</title>
		<link>http://jonathanlewis.wordpress.com/2007/03/18/thinking-big/#comment-4012</link>
		<dc:creator><![CDATA[SAN Array Cache and Filers Hate Sequential Writes &#171; Kevin Closson&#8217;s Oracle Blog: Platform, Storage &#38; Clustering Topics Related to Oracle Databases]]></dc:creator>
		<pubDate>Tue, 20 Mar 2007 17:07:51 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/2007/03/18/thinking-big/#comment-4012</guid>
		<description><![CDATA[[...] Lewis has taken on a recent Oracle-l thread about Thinking Big. It’s a good blog entry and I recommend giving it a read. The original Oracle-l post read like [...]]]></description>
		<content:encoded><![CDATA[<p>[...] Lewis has taken on a recent Oracle-l thread about Thinking Big. It’s a good blog entry and I recommend giving it a read. The original Oracle-l post read like [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jonathan Lewis</title>
		<link>http://jonathanlewis.wordpress.com/2007/03/18/thinking-big/#comment-4008</link>
		<dc:creator><![CDATA[Jonathan Lewis]]></dc:creator>
		<pubDate>Mon, 19 Mar 2007 22:14:13 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/2007/03/18/thinking-big/#comment-4008</guid>
		<description><![CDATA[Cos,  yes - IOTs for &quot;thin&quot; tables are an option - but the trade-offs are the extra I/O caused by the randomness of inserts, the smaller number of rows per block, and the larger size of secondary indexes. Getting the cost/benefit balance right can be tricky. 

DBA, thanks for the feedback - the IOT always add an interesting element to the sizing / resourcing problem.]]></description>
		<content:encoded><![CDATA[<p>Cos,  yes &#8211; IOTs for &#8220;thin&#8221; tables are an option &#8211; but the trade-offs are the extra I/O caused by the randomness of inserts, the smaller number of rows per block, and the larger size of secondary indexes. Getting the cost/benefit balance right can be tricky. </p>
<p>DBA, thanks for the feedback &#8211; the IOT always add an interesting element to the sizing / resourcing problem.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jonathan Lewis</title>
		<link>http://jonathanlewis.wordpress.com/2007/03/18/thinking-big/#comment-4007</link>
		<dc:creator><![CDATA[Jonathan Lewis]]></dc:creator>
		<pubDate>Mon, 19 Mar 2007 21:39:00 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/2007/03/18/thinking-big/#comment-4007</guid>
		<description><![CDATA[Amit, &lt;em&gt;&lt;b&gt;probably&lt;/b&gt;&lt;/em&gt; not. The figures are showing 64GB just to buffer one index completely. How much SSD would you have to buy to buffer all the indexes you want, just to eliminate one I/O per probe from the cost ? How much SSD would you need to buffer the whole (row-size unspecified) table in order to eliminate the significant volume of I/Os ?

The whole SSD argument is a little suspect when you start talking about big databases. In fact, you should take a look at &lt;a href=&quot;http://kevinclosson.wordpress.com&quot; rel=&quot;nofollow&quot;&gt;&lt;em&gt;&lt;strong&gt;Kevin Closson&#039;s blog&lt;/strong&gt;&lt;/em&gt;&lt;/a&gt; for some interesting comments on CPU stalling, and memory access speeds to see just how misleading the SSD argument can be.]]></description>
		<content:encoded><![CDATA[<p>Amit, <em><b>probably</b></em> not. The figures are showing 64GB just to buffer one index completely. How much SSD would you have to buy to buffer all the indexes you want, just to eliminate one I/O per probe from the cost ? How much SSD would you need to buffer the whole (row-size unspecified) table in order to eliminate the significant volume of I/Os ?</p>
<p>The whole SSD argument is a little suspect when you start talking about big databases. In fact, you should take a look at <a href="http://kevinclosson.wordpress.com" rel="nofollow"><em><strong>Kevin Closson&#8217;s blog</strong></em></a> for some interesting comments on CPU stalling, and memory access speeds to see just how misleading the SSD argument can be.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Amit Kulkarni</title>
		<link>http://jonathanlewis.wordpress.com/2007/03/18/thinking-big/#comment-4004</link>
		<dc:creator><![CDATA[Amit Kulkarni]]></dc:creator>
		<pubDate>Mon, 19 Mar 2007 13:01:41 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/2007/03/18/thinking-big/#comment-4004</guid>
		<description><![CDATA[Would using a SSD like BitMicro or RamSan help?]]></description>
		<content:encoded><![CDATA[<p>Would using a SSD like BitMicro or RamSan help?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Peter Scott</title>
		<link>http://jonathanlewis.wordpress.com/2007/03/18/thinking-big/#comment-4003</link>
		<dc:creator><![CDATA[Peter Scott]]></dc:creator>
		<pubDate>Mon, 19 Mar 2007 12:30:20 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/2007/03/18/thinking-big/#comment-4003</guid>
		<description><![CDATA[&lt;i&gt;What the SAN can give you is a write-cache benefit for the log writer, database writer, and any direct path writes and re-reads from sorting and hashing&lt;/i&gt; But only within the limits of the cache size - stray into the massive sorts and hashes of the data warehouse world and things can slow down, even more so for the RAID 5 configured SAN user]]></description>
		<content:encoded><![CDATA[<p><i>What the SAN can give you is a write-cache benefit for the log writer, database writer, and any direct path writes and re-reads from sorting and hashing</i> But only within the limits of the cache size &#8211; stray into the massive sorts and hashes of the data warehouse world and things can slow down, even more so for the RAID 5 configured SAN user</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: dba</title>
		<link>http://jonathanlewis.wordpress.com/2007/03/18/thinking-big/#comment-3999</link>
		<dc:creator><![CDATA[dba]]></dc:creator>
		<pubDate>Mon, 19 Mar 2007 09:18:38 +0000</pubDate>
		<guid isPermaLink="false">http://jonathanlewis.wordpress.com/2007/03/18/thinking-big/#comment-3999</guid>
		<description><![CDATA[your ball-park figures are pretty good.
I have a real-world system like that here, and the three billion-row index is taking little more than 75GB (key compressed, partitioned IOT)

response times are fairly consistent with what you predicted.]]></description>
		<content:encoded><![CDATA[<p>your ball-park figures are pretty good.<br />
I have a real-world system like that here, and the three billion-row index is taking little more than 75GB (key compressed, partitioned IOT)</p>
<p>response times are fairly consistent with what you predicted.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
