<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>OS与Oracle &#187; Smart Scan</title>
	<atom:link href="http://www.os2ora.com/tag/smart-scan/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.os2ora.com</link>
	<description>专注于现实世界Oracle数据库的高性能，高可扩展性与新一代数据库Exadata架构</description>
	<lastBuildDate>Fri, 16 Jul 2010 02:55:51 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Exadata V2 架构分析 (5)</title>
		<link>http://www.os2ora.com/exadata-architecture-analysis-5/</link>
		<comments>http://www.os2ora.com/exadata-architecture-analysis-5/#comments</comments>
		<pubDate>Tue, 22 Jun 2010 13:20:53 +0000</pubDate>
		<dc:creator>Kaya</dc:creator>
				<category><![CDATA[Exadata]]></category>
		<category><![CDATA[数据库性能调优]]></category>
		<category><![CDATA[系统架构]]></category>
		<category><![CDATA[DB2]]></category>
		<category><![CDATA[MDC]]></category>
		<category><![CDATA[Multi Dimensional Clustering]]></category>
		<category><![CDATA[SI]]></category>
		<category><![CDATA[Smart Scan]]></category>
		<category><![CDATA[Storage Index]]></category>
		<category><![CDATA[Storage Indexing]]></category>

		<guid isPermaLink="false">http://www.os2ora.com/exadata-architecture-analysis-5/</guid>
		<description><![CDATA[Exadata上另一个聪明的软件设计是实现了storage index.
如果Exadata给你的印象就是有很强大的硬件，却不会利用传统的性能优化方法，比如索引，去加快查询速度的话，那么Storage Index的出现或许会改变你的这种观念。而且，storage index是完全自动化的，它甚至不需要人工的干涉就能工作得很好......]]></description>
			<content:encoded><![CDATA[<p>Kaya 发表于 <a href="http://www.os2ora.com/">os2ora.com</a></p>
<p>Exadata上另一个聪明的软件设计是实现了storage index.</p>
<p>另一篇白皮书中有对Storage Index的一个描述 <a href="http://www.oracle.com/us/solutions/datawarehousing/039572.pdf" target="_blank">A Technical Overview of the Sun Oracle Exadata Storage Server and Database Machine</a></p>
<blockquote><p class="Default" style="margin: 0cm 0cm 0pt"><font color="#000000"><font face="Arial"><b><span lang="EN-US" style="font-size: 8pt">Storage Indexing </span></b><span lang="EN-US" style="font-size: 8pt"></span></font></font></p>
</p>
</p>
</p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt"><span lang="EN-US" style="font-family: &quot;Garamond&quot;,&quot;serif&quot;; mso-bidi-font-size: 10.5pt; mso-bidi-font-family: garamond"><font color="#000000" size="3">Storage Indexes are a very powerful capability provided in Exadata storage that helps avoid I/O operations. The Exadata Storage Server Software creates and maintains a Storage Index in Exadata memory. The Storage Index keeps track of minimum and maximum values of columns for tables stored on that cell. When a query specifies a WHERE clause, but before any I/O is done, the Exadata software examines the Storage Index to determine if rows with the specified column value exists in the cell by comparing the column value to the minimum and maximum values maintained in the Storage Index. If the column value is outside the minimum and maximum range, scan I/O for that query is avoided. Many SQL Operations will run dramatically faster because large numbers of I/O operations are automatically replaced by a few in-memory lookups. To minimize operational overhead, Storage Indexes are created and maintained transparently and automatically by the Exadata Storage Server Software.</font></span></p>
</blockquote>
<p>如果Exadata给你的印象就是有很强大的硬件，却不会利用传统的性能优化方法，比如索引，去加快查询速度的话，那么Storage Index的出现或许会改变你的这种观念。而且，storage index是完全自动化的，它甚至不需要人工的干涉就能工作得很好。</p>
<p>Smart Scan之所以冠名以Smart，是因为它在扫描数据的时候同时做过滤操作，只把必需的数据返回给数据服务器端；而Storage Index在这里却直接避免了对Disks的访问，其Smart的程度与Smart Scan相比，或许已经到了超凡脱俗的境界了。</p>
<p>如果真要找一个类比的话，DB2中有个特性或许可以与Storage Index做下对比，那就是<a href="http://www.research.ibm.com/mdc/index.html" target="_blank">Multi Dimensional Clustering</a>. 仔细阅读下MDC的介绍，两者真的有异曲同工之妙。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.os2ora.com/exadata-architecture-analysis-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exadata V2 架构分析 (4)</title>
		<link>http://www.os2ora.com/exadata-architecture-analysis-4/</link>
		<comments>http://www.os2ora.com/exadata-architecture-analysis-4/#comments</comments>
		<pubDate>Tue, 22 Jun 2010 13:12:01 +0000</pubDate>
		<dc:creator>Kaya</dc:creator>
				<category><![CDATA[Exadata]]></category>
		<category><![CDATA[数据库性能调优]]></category>
		<category><![CDATA[系统架构]]></category>
		<category><![CDATA[EHCC]]></category>
		<category><![CDATA[Exadata Hybrid Columnar Compression]]></category>
		<category><![CDATA[HCC]]></category>
		<category><![CDATA[Smart Scan]]></category>
		<category><![CDATA[白皮书]]></category>

		<guid isPermaLink="false">http://www.os2ora.com/exadata-architecture-analysis-4/</guid>
		<description><![CDATA[下一个要出场的是HCC, Hybrid Columnar Compression. 目前它是Exadata上面才有的一个特性。
在Exadata V2 架构分析 (1)中，曾提到“在软件设计上，还有另一个重头戏，它更是大大的利用起了存贮节点上的CPU处理能力，同时还能减少对带宽的争用”。Exadata的很多设计，或许从根本上讲，就在于充分利用起存贮节点上的处理能力，Smart Scan和这里所要提及的HCC，就是两个典型的代表了。HCC中文翻译过来或许就叫做混合列压缩，它是在单纯的行存贮和列存贮之间取得的一个折衷......]]></description>
			<content:encoded><![CDATA[<p>Kaya 发表于 <a href="http://www.os2ora.com/">os2ora.com</a></p>
<p>下一个要出场的是HCC, Hybrid Columnar Compression. 目前它是Exadata上面才有的一个特性，所以又叫做Exadata Hybrid Columnar Compression。</p>
<p>在<a href="http://www.os2ora.com/exadata-architecture-analysis-1/" target="_blank">Exadata V2 架构分析 (1)</a>中，曾提到“<span class="Apple-style-span" style="word-spacing: 0px; font: medium simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate; orphans: 2; widows: 2; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><span class="Apple-style-span" style="font-size: 12px; color: rgb(85,85,85); font-family: verdana, &#39;BitStream vera Sans&#39;, helvetica, sans-serif; text-align: left">在软件设计上，还有另一个重头戏，它更是大大的利用起了存贮节点上的CPU处理能力，同时还能减少对带宽的争用”。Exadata的很多设计，或许从根本上讲，就在于充分利用起存贮节点上的处理能力，Smart Scan和这里所要提及的HCC，就是两个典型的代表了。HCC中文翻译过来或许就叫做混合列压缩，它是在单纯的行存贮和列存贮之间取得的一个折衷。</span></span></p>
<p><span class="Apple-style-span" style="word-spacing: 0px; font: medium simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate; orphans: 2; widows: 2; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><span class="Apple-style-span" style="font-size: 12px; color: rgb(85,85,85); font-family: verdana, &#39;BitStream vera Sans&#39;, helvetica, sans-serif; text-align: left">一个比较好的参考文档是这篇白皮书<a href="http://www.oracle.com/technology/products/bi/db/exadata/pdf/ehcc_twp.pdf" target="_blank">Exadata Hybrid Columnar Compression</a>.</span></span></p>
<p><a href="http://www.os2ora.com/wp-content/uploads/2010/06/image.png"><img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="202" alt="image" src="http://www.os2ora.com/wp-content/uploads/2010/06/image_thumb.png" width="701" border="0" /></a> </p>
<p><span class="Apple-style-span" style="word-spacing: 0px; font: medium simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate; orphans: 2; widows: 2; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><span class="Apple-style-span" style="font-size: 12px; color: rgb(85,85,85); font-family: verdana, &#39;BitStream vera Sans&#39;, helvetica, sans-serif; text-align: left">上图中，典型地，4个8KB的blocks被当成一个Compression Unit。在这个CU所能存贮的rows中，每个column被分开存贮。可以想像到，每个column里的内容是很相似的，如果与row之间的内容做比较的话。于是，对每个column的内容进行压缩，会得到很好的压缩率。根据压缩算法的不同，Oracle提供了四种不同的压缩等级，详见上面提到的白皮书，这里就不详细列出了。</span></span></p>
<p><span class="Apple-style-span" style="word-spacing: 0px; font: medium simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate; orphans: 2; widows: 2; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><span class="Apple-style-span" style="font-size: 12px; color: rgb(85,85,85); font-family: verdana, &#39;BitStream vera Sans&#39;, helvetica, sans-serif; text-align: left">到底EHCC的压缩率可以达到多少呢？白皮书中提到两个数据，可以做为参考，对于Warehouse Compression，有10x的压缩率，对于Archive Compression，有15x的压缩率。</span></span></p>
<p><span class="Apple-style-span" style="word-spacing: 0px; font: medium simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate; orphans: 2; widows: 2; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><span class="Apple-style-span" style="font-size: 12px; color: rgb(85,85,85); font-family: verdana, &#39;BitStream vera Sans&#39;, helvetica, sans-serif; text-align: left"></span></span></p>
<p><span class="Apple-style-span" style="word-spacing: 0px; font: medium simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate; orphans: 2; widows: 2; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><span class="Apple-style-span" style="font-size: 12px; color: rgb(85,85,85); font-family: verdana, &#39;BitStream vera Sans&#39;, helvetica, sans-serif; text-align: left">EHCC相对于单纯的Column Compression而言，有一个极其突出的优点，这点是不得不提及的。当进行行级访问数据时，如根据rowid返回一行数据，EHCC只要一个IO就够了，不管所访问的表有多少列，而对于单纯的Column Compression而言，对于每个Column，都必须有一个IO操作。那么，随着表设计的复杂，如一个表拥有成百上千列，两种存贮方式的性能就能体现出成百上千倍的差距了。</span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.os2ora.com/exadata-architecture-analysis-4/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Exadata V2 架构分析 (2)</title>
		<link>http://www.os2ora.com/exadata-architecture-analysis-2/</link>
		<comments>http://www.os2ora.com/exadata-architecture-analysis-2/#comments</comments>
		<pubDate>Sun, 16 May 2010 16:30:39 +0000</pubDate>
		<dc:creator>Kaya</dc:creator>
				<category><![CDATA[Exadata]]></category>
		<category><![CDATA[数据库性能调优]]></category>
		<category><![CDATA[系统架构]]></category>
		<category><![CDATA[buffer cache]]></category>
		<category><![CDATA[Buffer Hit Ratio]]></category>
		<category><![CDATA[Flash Cache]]></category>
		<category><![CDATA[IOPS]]></category>
		<category><![CDATA[MBPS]]></category>
		<category><![CDATA[OLTP]]></category>
		<category><![CDATA[Smart Scan]]></category>

		<guid isPermaLink="false">http://www.os2ora.com/exadata-architecture-analysis-2/</guid>
		<description><![CDATA[既然提到了Flash Cache,如果不提下对OLTP的提速好象会缺少点什么。对OLTP系统而言，缓存是一个极其重要的设计，不管是数据库节点上的内存上的Buffer Cache，还是存贮节点上的Flash Cache（Exadata)，还有数据库节点上的Flash Cache(某些平台，如Linux)......]]></description>
			<content:encoded><![CDATA[<p>Kaya 发表于 <a href="http://www.os2ora.com/">os2ora.com</a></p>
<p>既然提到了Flash Cache,如果不提下对OLTP的提速好象会缺少点什么。对OLTP系统而言，缓存是一个极其重要的设计，不管是数据库节点上的内存上的Buffer Cache，还是存贮节点上的Flash Cache（Exadata)，还有数据库节点上的Flash Cache(某些平台，如Linux)。</p>
<p>前几天在<a href="http://www.eygle.com" target="_blank">Eygle</a>的性能调优课程上听过他提过的一句话，缓存为王（致敬，呵呵），深以为然，这应该是他极其重要的实践总结，对于OLTP系统而言，这真是一点不为过。</p>
<p>下面的表格列出了一个实际场景，分别测试了不同的buffer 命中率和引入Flash Cache之后的性能变化。</p>
<table cellspacing="0" cellpadding="2" width="987" border="1">
<tbody>
<tr>
<td valign="top" width="59">Cache</td>
<td valign="top" width="89">Executions</td>
<td valign="top" width="86">Buffer Hit %</td>
<td valign="top" width="90">CPU Time (s)</td>
<td valign="top" width="100">user IO time (s)</td>
<td valign="top" width="108">Elapsed Time</td>
<td valign="top" width="134">total Elapsed Time (s)</td>
<td valign="top" width="62">CPU %</td>
<td valign="top" width="106">response time</td>
<td valign="top" width="151">SpeedUp Factor</td>
</tr>
<tr>
<td valign="top" width="67">Buffer Cache</td>
<td valign="top" width="96">30000</td>
<td valign="top" width="85">85</td>
<td valign="top" width="89">70</td>
<td valign="top" width="99">4082</td>
<td valign="top" width="106">00:02:20</td>
<td valign="top" width="133">4138</td>
<td valign="top" width="64">3</td>
<td valign="top" width="106">0.138</td>
<td valign="top" width="149">1</td>
</tr>
<tr>
<td valign="top" width="70">Flash Cache</td>
<td valign="top" width="100">30000</td>
<td valign="top" width="85">85</td>
<td valign="top" width="89">69</td>
<td valign="top" width="98">265</td>
<td valign="top" width="105">00:00:12</td>
<td valign="top" width="132">323</td>
<td valign="top" width="65">36</td>
<td valign="top" width="106">0.011</td>
<td valign="top" width="149">13</td>
</tr>
<tr>
<td valign="top" width="71">Buffer Cache</td>
<td valign="top" width="101">30000</td>
<td valign="top" width="85">100</td>
<td valign="top" width="89">19</td>
<td valign="top" width="100">0</td>
<td valign="top" width="111">00:00:02</td>
<td valign="top" width="142">26</td>
<td valign="top" width="69">61</td>
<td valign="top" width="111">0.001</td>
<td valign="top" width="165">158</td>
</tr>
</tbody>
</table>
<p>上面的三行对应的OLTP负载是相同的，但总的执行时间却是大大不同的，从2分多钟到10几秒到2秒。唯一的区别就在于Cell Flash Cache, Buffer Cache 的介入。</p>
<p>上面这些数据起码可以得出几个结论：</p>
<p>1. Buffer Cache会减少CPU Time,但Cell Flash Cache不会。这从另一个方面说明，IO调度是需要CPU的。</p>
<p>2. Cell Flash Cache和Buffer Cache都大大减少了User IO Time。最终的结果就是大大提升了响应时间，例如上面我们得到了从13倍到158倍的性能提升。</p>
<p>3. Cell Flash Cache和Buffer Cache都提高了DB节点的CPU利用率。例如上面我们的CPU利用率从3%提高到36%和61%。</p>
<p>Exadata V2宣传的一个令人惊诧的数字之一是每秒钟一百万个8K的随机IO。很恐怖吧，1,000,000 IO/s.</p>
<p>其实，如果只是进行读操作而没有写操作的话，这个数字会更令人恐怖。下面是一个截图。把里面的峰值(300k)除以3乘以14，就得到整个机器14个cell可以达到的一个IOPS: 1.4 million IO/s.</p>
<p><a href="http://www.os2ora.com/wp-content/uploads/2010/05/iops.jpg"><img title="iops" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="233" alt="iops" src="http://www.os2ora.com/wp-content/uploads/2010/05/iops_thumb.jpg" width="804" border="0" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.os2ora.com/exadata-architecture-analysis-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Exadata V2 架构分析 (1)</title>
		<link>http://www.os2ora.com/exadata-architecture-analysis-1/</link>
		<comments>http://www.os2ora.com/exadata-architecture-analysis-1/#comments</comments>
		<pubDate>Thu, 13 May 2010 15:13:28 +0000</pubDate>
		<dc:creator>Kaya</dc:creator>
				<category><![CDATA[Exadata]]></category>
		<category><![CDATA[DSS]]></category>
		<category><![CDATA[Flash Cache]]></category>
		<category><![CDATA[IOPS]]></category>
		<category><![CDATA[MBPS]]></category>
		<category><![CDATA[OLTP]]></category>
		<category><![CDATA[Smart Scan]]></category>

		<guid isPermaLink="false">http://www.os2ora.com/exadata-architecture-analysis-1/</guid>
		<description><![CDATA[准备写一系列的文章，专门分析下Exadata的架构。时间真过得很快，自从Exadata问世以来，一直围绕着它做各种各样的性能测试，从V1过渡到V2。Exadata在大踏步地前进着，我总认为，这应该是一个很优秀的产品，而我也相信时间会证明这一点的。
这些文章不会有很严谨的结构，或许某天，某时发现的一个特性，一个特点，一个最佳实践，一个有意思的地方，一个令人惊讶的数据，一个令人鼓舞的图形，都会成为这一系列文章的一部分。
Flash Cache是V2里引入的一个特性，大家或许都认为Flash Cache 主要是用于OLTP场合，为OLTP提高更高的IOPS，这点当然没错，Flash Cache相比于一般磁盘，会带来上十倍的IOPS的性能提升。但即使对于DSS场合，Flash Cache也是提升性能的一个利器......]]></description>
			<content:encoded><![CDATA[<p>Kaya 发表于 <a href="http://www.os2ora.com/">os2ora.com</a></p>
<p>准备写一系列的文章，专门分析下Exadata的架构。时间真过得很快，自从Exadata问世以来，一直围绕着它做各种各样的性能测试，从V1过渡到V2。Exadata在大踏步地前进着，我总认为，这应该是一个很优秀的产品，而我也相信时间会证明这一点的。</p>
<p>这些文章不会有很严谨的结构，或许某天，某时发现的一个特性，一个特点，一个最佳实践，一个有意思的地方，一个令人惊讶的数据，一个令人鼓舞的图形，都会成为这一系列文章的一部分。</p>
<p>Flash Cache是V2里引入的一个特性，大家或许都认为Flash Cache 主要是用于OLTP场合，为OLTP提高更高的IOPS，这点当然没错，Flash Cache相比于一般磁盘，会带来上十倍的IOPS的性能提升。但即使对于DSS场合，Flash Cache也是提升性能的一个利器。</p>
<p>下面是看图说话时间。</p>
<p><a href="http://www.os2ora.com/wp-content/uploads/2010/05/flashdss1.jpg"><img title="flash-dss" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="392" alt="flash-dss" src="http://www.os2ora.com/wp-content/uploads/2010/05/flashdss_thumb1.jpg" width="449" border="0" /></a> <a href="http://www.os2ora.com/wp-content/uploads/2010/05/flashdss21.jpg"><img title="flash-dss2" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="402" alt="flash-dss2" src="http://www.os2ora.com/wp-content/uploads/2010/05/flashdss2_thumb1.jpg" width="465" border="0" /></a> </p>
<p>左图中，MBPS达到了4.5 GB/s。但是存贮节点上的CPU和数据库节点上的CPU的利用率却在20%左右。如果在存贮节点加入Flash Cache，整个系统会发生什么样的改变呢？右图就是加入了flash cache后的CPU/IO情况。MBPS达到了14G/s，存贮节点的CPU利用率超过了60%，DB节点上的CPU利用率也超过了40%。</p>
<p>仔细地对比研究这个图，对系统间资源的协作会有进一步的认识。</p>
<p>可以说, Flash Cache除了提供更高的带宽外，还大大解放了存贮节点上的CPU处理能力。这种处理能力可是单纯的高端存贮都不具备的，这就是Exadata上独有的Smart Scan特性。Exadata V1实现了对磁盘的Smart Scan，而V2则实现了对Flash Cache的更快，更强大的Smart Scan。当然，在软件设计上，还有另一个重头戏，它更是大大的利用起了存贮节点上的CPU处理能力，同时还能减少对带宽的争用。至于更具体的信息，留在另一篇介绍啦。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.os2ora.com/exadata-architecture-analysis-1/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>11g新特性: OLTP中的Adaptive Direct Read算法</title>
		<link>http://www.os2ora.com/11g-new-feature-adaptive-direct-read/</link>
		<comments>http://www.os2ora.com/11g-new-feature-adaptive-direct-read/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 07:17:45 +0000</pubDate>
		<dc:creator>Kaya</dc:creator>
				<category><![CDATA[Exadata]]></category>
		<category><![CDATA[数据库性能调优]]></category>
		<category><![CDATA[11G]]></category>
		<category><![CDATA[Adaptive Direct Read]]></category>
		<category><![CDATA[Smart Scan]]></category>
		<category><![CDATA[_serial_direct_read]]></category>
		<category><![CDATA[_small_table_threshold]]></category>

		<guid isPermaLink="false">http://www.os2ora.com/11g-new-feature-adaptive-direct-read/</guid>
		<description><![CDATA[direct read是直接把数据块读到PGA的一种操作，在并行查询中这是唯一的模式。这明显地区别于非并行查询把数据块读到SGA的做法。读到SGA的目的主要是为了共享，这特别适用于OLTP场合。不过，与此同时，访问SGA会引入更多的latch等待，例如cache buffer chains, cache buffer lru等等。

在非并行查询中也可以使用direct read，可以通过一个隐含参数_serial_direct_read进行设置。

值得注意，_serial_direct_read对解析过程起作用，这意味着为了使_serial_direct_read对当前运行中的SQL起作用，我们必须先flush当前的shared_pool。

11g中，Oracle有了一个自适应的算法决定是否对serial execution启用direct read。不过，这是在运行时才决定的。它取决于多个统计信息，例如当前buffer cache的大小，_small_table_threshold的大小，当前dirty blocks还占的比例等等。因此，即使在11g中_serial_direct_read的值为false，serial direct read也可能起作用。这个算法其实就叫做Adaptive Direct Read.......]]></description>
			<content:encoded><![CDATA[<p>Kaya 发表于 <a href="http://www.os2ora.com">os2ora.com</a></p>
<p>direct read是直接把数据块读到PGA的一种操作，在并行查询中这是唯一的模式。这明显地区别于非并行查询把数据块读到SGA的做法。读到SGA的目的主要是为了共享，这特别适用于OLTP场合。不过，与此同时，访问SGA会引入更多的latch等待，例如cache buffer chains, cache buffer lru等等。</p>
<p>在非并行查询中也可以使用direct read，可以通过一个隐含参数_serial_direct_read进行设置。</p>
<p>值得注意，_serial_direct_read对解析过程起作用，这意味着为了使_serial_direct_read对当前运行中的SQL起作用，我们必须先flush当前的shared_pool。</p>
<p>11g中，Oracle有了一个自适应的算法决定是否对serial execution启用direct read。不过，这是在运行时才决定的。它取决于多个统计信息，例如当前buffer cache的大小，_small_table_threshold的大小，当前dirty blocks还占的比例等等。因此，即使在11g中_serial_direct_read的值为false，serial direct read也可能起作用。这个算法其实就叫做Adaptive Direct Read.</p>
<p>下面是两个模式对资源的利用情况对比:</p>
<table border="1" cellspacing="0" cellpadding="2" width="570">
<tbody>
<tr>
<td width="190" valign="top"> </td>
<td width="173" valign="top">direct read</td>
<td width="205" valign="top">traditional way</td>
</tr>
<tr>
<td width="190" valign="top">consistent gets</td>
<td width="173" valign="top">80,577</td>
<td width="205" valign="top">80,589</td>
</tr>
<tr>
<td width="190" valign="top">physical reads direct</td>
<td width="173" valign="top">80,498</td>
<td width="205" valign="top">0</td>
</tr>
<tr>
<td width="190" valign="top">cache buffers chains</td>
<td width="173" valign="top">395</td>
<td width="205" valign="top">161,029</td>
</tr>
<tr>
<td width="190" valign="top">wait events</td>
<td width="173" valign="top">&#8216;cell smart table scan’</td>
<td width="205" valign="top">&#8216;cell multiblock physical read&#8217;<br />
&#8216;gc cr multi block request’</td>
</tr>
</tbody>
</table>
<p>当使用direct read时，cache buffers chains明显减少，但物理读每次都保持恒定。对于传统方法，物理读只发生在第一次执行时。</p>
<p>对于等待事件也有所不同，direct read的等待事件是&#8217;cell smart table scan’，而非direct read的等待事件是&#8217;cell multiblock physical read&#8217;。这体现出Exadata的独有的优势: direct read可以利用Exadata的smart scan功能，从而实现把DB节点的CPU负载offload到存贮节点上。</p>
<p>一些Tips:</p>
<p>利用下面这个event 可以disable 这个特性:</p>
<pre lang="”SQL”">alter session set events '10949 trace name context forever, level 1';</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.os2ora.com/11g-new-feature-adaptive-direct-read/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Oracle Database未来的发展方向– Exadata (3)</title>
		<link>http://www.os2ora.com/oracle-database-future-exadata-3/</link>
		<comments>http://www.os2ora.com/oracle-database-future-exadata-3/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 13:59:53 +0000</pubDate>
		<dc:creator>Kaya</dc:creator>
				<category><![CDATA[Exadata]]></category>
		<category><![CDATA[数据库性能调优]]></category>
		<category><![CDATA[系统架构]]></category>
		<category><![CDATA[balanced system]]></category>
		<category><![CDATA[bottleneck]]></category>
		<category><![CDATA[Infiniband]]></category>
		<category><![CDATA[Smart Scan]]></category>
		<category><![CDATA[云计算]]></category>
		<category><![CDATA[发展方向]]></category>
		<category><![CDATA[高性能]]></category>

		<guid isPermaLink="false">http://www.os2ora.com/oracle-database-future-exadata-3/</guid>
		<description><![CDATA[前面分析的主要是Exadata如何高效地进行计算。通过在存贮结点加入数据处理能力，Exdata不仅大大地提升了处理性能，而且解决了以前的Oracle架构上可能存在的CPU和网络的瓶颈问题。

一个Database Machine有8个DB节点，14个Cell (存贮)结点。在V1版本中，一个Cell可以提供1GB/s的带宽，14个Cell节点总共能提供的带宽为14GB/s。对于8个DB节点，每个节点都是两个CPU，每个CPU 4 个Cores。所以一个Database Machine中DB节点总共有64个Cores。

8 DB Nodes + 14 Cell Nodes = Balanced System

这是一个经过实践证明过的平衡的一个配置。
记得今年9月底和阿里巴巴的DBA的一个关于Exadata的交流活动上，新成立的阿里云的同事也到场了。Exadata的架构引起了大家的共鸣，会后一个反应是，有人觉得Exadata与云计算有些异曲同工之妙。其实这也难怪，Exadata本来就是一个关注大规模并行计算的集群系统。特别是智能的存贮节点的引入，更使得每个存贮节点能够分担一个大计算里的一小部分，并且这些智能的存贮节点还有线性的可扩展性，当需要更好的性能时，只要简单地相应增加存贮节点和/或DB节点就可以实现了。这难怪不是一个“云计算”的例子吗......]]></description>
			<content:encoded><![CDATA[<p>Kaya 发表于 <a href="http://www.os2ora.com">os2ora.com</a></p>
<p>前面分析的主要是Exadata如何高效地进行计算。通过在存贮结点加入数据处理能力，Exdata不仅大大地提升了处理性能，而且解决了以前的Oracle架构上可能存在的CPU和网络的瓶颈问题。</p>
<p>一个Database Machine有8个DB节点，14个Cell (存贮)结点。在V1版本中，一个Cell可以提供1GB/s的带宽，14个Cell节点总共能提供的带宽为14GB/s。对于8个DB节点，每个节点都是两个CPU，每个CPU 4 个Cores。所以一个Database Machine中DB节点总共有64个Cores。</p>
<p>8 DB Nodes + 14 Cell Nodes = Balanced System</p>
<p>这是一个经过实践证明过的平衡的一个配置。对于一个典型的DW并行查询，类似我们在第一篇文章里提到的，也就是下面的这个查询:</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> a<span style="color: #66cc66;">.</span>no<span style="color: #66cc66;">,</span>
       sum<span style="color: #66cc66;">&#40;</span>case
             when a<span style="color: #66cc66;">.</span><span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #993333; font-weight: bold;">IN</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'A'</span><span style="color: #66cc66;">&#41;</span> then
              a<span style="color: #66cc66;">.</span>score <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">2</span>
             else
              a<span style="color: #66cc66;">.</span>score <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">5</span>
           end<span style="color: #66cc66;">&#41;</span> score1<span style="color: #66cc66;">,</span>
       sum<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">....</span>
           <span style="color: #66cc66;">...</span>
              <span style="color: #66cc66;">&#41;</span> scoreN
  <span style="color: #993333; font-weight: bold;">FROM</span> fact_table a
 <span style="color: #993333; font-weight: bold;">GROUP</span> <span style="color: #993333; font-weight: bold;">BY</span> a<span style="color: #66cc66;">.</span>no
;</pre></div></div>

<p>在运行的大部分时间，DB节点的64个Cores保持100%的利用率，14个Cell节点的总IO吞吐量保持在14GB/s上。</p>
<p>记得今年9月底和阿里巴巴的DBA的一个关于Exadata的交流活动上，新成立的阿里云的同事也到场了。Exadata的架构引起了大家的共鸣，会后一个反应是，有人觉得Exadata与云计算有些异曲同工之妙。其实这也难怪，Exadata本来就是一个关注大规模并行计算的集群系统。特别是智能的存贮节点的引入，更使得每个存贮节点能够分担一个大计算里的一小部分，并且这些智能的存贮节点还有线性的可扩展性，当需要更好的性能时，只要简单地相应增加存贮节点和/或DB节点就可以实现了。这难道不是一个“云计算”的例子吗？</p>
]]></content:encoded>
			<wfw:commentRss>http://www.os2ora.com/oracle-database-future-exadata-3/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Oracle Database未来的发展方向 – Exadata (2)</title>
		<link>http://www.os2ora.com/oracle-database-future-exadata-2/</link>
		<comments>http://www.os2ora.com/oracle-database-future-exadata-2/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 08:19:46 +0000</pubDate>
		<dc:creator>Kaya</dc:creator>
				<category><![CDATA[Exadata]]></category>
		<category><![CDATA[数据库性能调优]]></category>
		<category><![CDATA[系统架构]]></category>
		<category><![CDATA[balanced system]]></category>
		<category><![CDATA[bottleneck]]></category>
		<category><![CDATA[Infiniband]]></category>
		<category><![CDATA[Smart Scan]]></category>
		<category><![CDATA[发展方向]]></category>
		<category><![CDATA[高性能]]></category>

		<guid isPermaLink="false">http://www.os2ora.com/oracle-database-future-exadata-2/</guid>
		<description><![CDATA[下一个问题，Exadata如何解决CPU方面的瓶颈呢？ 

在Exadata之前，我想无非两种思路，第一在原来节点上用更多更强的CPU，第二采用更多的RAC节点。 

不过在Exadata的架构中，CPU的瓶颈已经从基本上得到很大的缓解，这就是存贮节点上CPU处理能力的介入......]]></description>
			<content:encoded><![CDATA[<p>Kaya 发表于 <a href="http://www.os2ora.com">os2ora.com</a></p>
<p>下一个问题，Exadata如何解决CPU方面的瓶颈呢？</p>
<p>在Exadata之前，我想无非两种思路，第一在原来节点上用更多更强的CPU，第二采用更多的RAC节点。</p>
<p>不过在Exadata的架构中，CPU的瓶颈已经从基本上得到很大的缓解，这就是存贮节点上CPU处理能力的介入。</p>
<p>还是以一个实际SQL为例:</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> t0<span style="color: #66cc66;">.</span>id
   <span style="color: #993333; font-weight: bold;">FROM</span>
  <span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">SELECT</span> id
 <span style="color: #993333; font-weight: bold;">FROM</span> t0
    <span style="color: #993333; font-weight: bold;">WHERE</span> id <span style="color: #993333; font-weight: bold;">LIKE</span> <span style="color: #ff0000;">'%54234245%'</span>
  <span style="color: #66cc66;">&#41;</span> t0<span style="color: #66cc66;">,</span>
  <span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">SELECT</span> id
     <span style="color: #993333; font-weight: bold;">FROM</span> t1
    <span style="color: #993333; font-weight: bold;">WHERE</span> id <span style="color: #993333; font-weight: bold;">LIKE</span> <span style="color: #ff0000;">'%54234245%'</span>
  <span style="color: #66cc66;">&#41;</span> t1<span style="color: #66cc66;">,</span>
  <span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">SELECT</span> id
     <span style="color: #993333; font-weight: bold;">FROM</span> t2
    <span style="color: #993333; font-weight: bold;">WHERE</span> id <span style="color: #993333; font-weight: bold;">LIKE</span> <span style="color: #ff0000;">'%54234245%'</span>
  <span style="color: #66cc66;">&#41;</span> t2<span style="color: #66cc66;">,</span>
  <span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">SELECT</span> id
     <span style="color: #993333; font-weight: bold;">FROM</span> t3
    <span style="color: #993333; font-weight: bold;">WHERE</span> id <span style="color: #993333; font-weight: bold;">LIKE</span> <span style="color: #ff0000;">'%54234245%'</span>
  <span style="color: #66cc66;">&#41;</span> t3<span style="color: #66cc66;">,</span>
  <span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">SELECT</span> id
     <span style="color: #993333; font-weight: bold;">FROM</span> t4
    <span style="color: #993333; font-weight: bold;">WHERE</span> id <span style="color: #993333; font-weight: bold;">LIKE</span> <span style="color: #ff0000;">'%54234245%'</span>
  <span style="color: #66cc66;">&#41;</span> t4<span style="color: #66cc66;">,</span>
  <span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">SELECT</span> id
     <span style="color: #993333; font-weight: bold;">FROM</span> t5
    <span style="color: #993333; font-weight: bold;">WHERE</span> id <span style="color: #993333; font-weight: bold;">LIKE</span> <span style="color: #ff0000;">'%54234245%'</span>
  <span style="color: #66cc66;">&#41;</span> t5<span style="color: #66cc66;">,</span>
  <span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">SELECT</span> id
     <span style="color: #993333; font-weight: bold;">FROM</span> t6
    <span style="color: #993333; font-weight: bold;">WHERE</span> id <span style="color: #993333; font-weight: bold;">LIKE</span> <span style="color: #ff0000;">'%54234245%'</span>
  <span style="color: #66cc66;">&#41;</span> t6
  <span style="color: #993333; font-weight: bold;">WHERE</span>
    t0<span style="color: #66cc66;">.</span>id<span style="color: #66cc66;">=</span>t1<span style="color: #66cc66;">.</span>id
<span style="color: #993333; font-weight: bold;">AND</span> t0<span style="color: #66cc66;">.</span>id<span style="color: #66cc66;">=</span>t2<span style="color: #66cc66;">.</span>id
<span style="color: #993333; font-weight: bold;">AND</span> t0<span style="color: #66cc66;">.</span>id<span style="color: #66cc66;">=</span>t3<span style="color: #66cc66;">.</span>id
<span style="color: #993333; font-weight: bold;">AND</span> t0<span style="color: #66cc66;">.</span>id<span style="color: #66cc66;">=</span>t4<span style="color: #66cc66;">.</span>id
<span style="color: #993333; font-weight: bold;">AND</span> t0<span style="color: #66cc66;">.</span>id<span style="color: #66cc66;">=</span>t5<span style="color: #66cc66;">.</span>id
<span style="color: #993333; font-weight: bold;">AND</span> t0<span style="color: #66cc66;">.</span>id<span style="color: #66cc66;">=</span>t6<span style="color: #66cc66;">.</span>id
;</pre></div></div>

<p>下面是一个可能的结果，第一行的数据是没有启用Smart Scan技术的结果，第二行是启用了Smart Scan的结果。</p>
<table border="1" cellspacing="0" cellpadding="2" width="563">
<tbody>
<tr>
<td width="102" valign="top">Type</td>
<td width="52" valign="top">Elapsed</td>
<td width="76" valign="top">DB CPU%</td>
<td width="88" valign="top">IO(MB/s)</td>
<td width="100" valign="top">Cell CPU%</td>
<td width="143" valign="top">Network (MB/s)</td>
</tr>
<tr>
<td width="102" valign="top">pre-Exadata</td>
<td width="52" valign="top">21s</td>
<td width="76" valign="top">99</td>
<td width="88" valign="top">400</td>
<td width="100" valign="top">1</td>
<td width="143" valign="top">400</td>
</tr>
<tr>
<td width="102" valign="top">Exadata</td>
<td width="52" valign="top">11s</td>
<td width="76" valign="top">80</td>
<td width="88" valign="top">700</td>
<td width="100" valign="top">50</td>
<td width="143" valign="top">8</td>
</tr>
</tbody>
</table>
<p> </p>
<p>第一行比较容易理解，存贮阵列/结点的数据以400 MB/s的速度通过Storage network传输到DB结点进行，DB CPU的利用率达到了99%。</p>
<p>显而易见，这时瓶颈出现在DB结点的CPU上，如果启用了Smart Scan，则Exadata会在存贮结点上首先对数据进行处理(存贮结点的CPU利用率为50%)，然后把其中有效的数据以8 MB/s的速度传输到DB结点进行处理，这时DB结点的CPU利用率下降为80%。SQL的完成时间却变为原来的一半。</p>
<p>Exadata在这里做了哪些事情呢？</p>
<p>1. 只进行有效数据的传输，这里，只传输满足条件id like &#8216;%54234245%&#8217;的7个表的指定列 id 的数据。</p>
<p>2. 解决了原来pre-Exadata可能碰到的网络瓶颈问题</p>
<p>3. 分担了DB 节点的工作负载</p>
]]></content:encoded>
			<wfw:commentRss>http://www.os2ora.com/oracle-database-future-exadata-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle Database未来的发展方向 – Exadata (1)</title>
		<link>http://www.os2ora.com/oracle-database-future-exadata-1/</link>
		<comments>http://www.os2ora.com/oracle-database-future-exadata-1/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 15:45:00 +0000</pubDate>
		<dc:creator>Kaya</dc:creator>
				<category><![CDATA[Exadata]]></category>
		<category><![CDATA[数据库性能调优]]></category>
		<category><![CDATA[系统架构]]></category>
		<category><![CDATA[balanced system]]></category>
		<category><![CDATA[bottleneck]]></category>
		<category><![CDATA[Infiniband]]></category>
		<category><![CDATA[Smart Scan]]></category>
		<category><![CDATA[发展方向]]></category>
		<category><![CDATA[高性能]]></category>

		<guid isPermaLink="false">http://www.os2ora.com/oracle-database-future-exadata-1/</guid>
		<description><![CDATA[Exadata应该说代表着Oracle Database未来的发展方向。这句话可不是一句广告词，依我看来，Exadata完全有这个资格享受这种待遇。

一个计算系统，最主要的是追求CPU，IO，Network之间的平衡。使这些计算资源能充分地发挥潜能。比如说，如果IO的扫描能力能达到10GB/s，如果存贮阵列到计算结点的带宽不能达到10GB/s，那么IO的扫描能力就不能得到充分发挥。又比如，如果CPU每秒钟只能处理6GB/s的数据量，10GB/s的IO扫描能力也不能能到充分发挥。

对一个计算系统另一个重要的衡量指标是如何有效地利用计算资源，这同样地包括CPU，IO，Network。比如说，虽然Network可以达到每秒10GB/s的带宽，但如果这些数据都是无效的(与本次操作无关的其它业务数据)，那么这只是对网络带宽的浪费。这就涉及到一个重要的课题：如何高效地利用最少的计算资源在最适当的时候对数据进行操作。

在原来Oracle Database的基础上，为满足上面提到的两个基本点，Exadata进行了富有创新的对基本设施的改进。举一个例子，当数据刚从存贮结点扫描出来时，马上进行初步的加工，把无效的数据丢弃。同时，Exadata推出了一个实现了CPU，IO，Network之间平衡的典型的机器配置。这可以说是Oracle为业界推出了自己在Oracle Database的最佳实践的一个最佳解决方案......]]></description>
			<content:encoded><![CDATA[<p>Kaya 发表于 <a href="http://www.os2ora.com">os2ora.com</a></p>
<p>Exadata应该说代表着Oracle Database未来的发展方向。这句话可不是一句广告词，依我看来，Exadata完全有这个资格享受这种待遇。</p>
<p>一个计算系统，最主要的是追求CPU，IO，Network之间的平衡。使这些计算资源能充分地发挥潜能。比如说，如果IO的扫描能力能达到10GB/s，如果存贮阵列到计算结点的带宽不能达到10GB/s，那么IO的扫描能力就不能得到充分发挥。又比如，如果CPU每秒钟只能处理6GB/s的数据量，10GB/s的IO扫描能力也不能能到充分发挥。</p>
<p>对一个计算系统另一个重要的衡量指标是如何有效地利用计算资源，这同样地包括CPU，IO，Network。比如说，虽然Network可以达到每秒10GB/s的带宽，但如果这些数据都是无效的(与本次操作无关的其它业务数据)，那么这只是对网络带宽的浪费。这就涉及到一个重要的课题：如何高效地利用最少的计算资源在最适当的时候对数据进行操作。</p>
<p>在原来Oracle Database的基础上，为满足上面提到的两个基本点，Exadata进行了富有创新的对基本设施的改进。举一个例子，当数据刚从存贮结点扫描出来时，马上进行初步的加工，把无效的数据丢弃。同时，Exadata推出了一个实现了CPU，IO，Network之间平衡的典型的机器配置。这可以说是Oracle为业界推出了自己在Oracle Database的最佳实践的一个最佳解决方案。</p>
<p>那么，Exadata如何解决Network方面的瓶颈呢？</p>
<p>首先是Infiniband的运用。一个Infiniband的端口一般可以提供2GB/s的流量，这是千兆网的16倍以上，4Gb的光纤网络的5倍以上。</p>
<p>同时，Exadata只进行有效数据的传输，最具体讲，则是Smart Scan 技术的运用。举个例子，对于下面这个查询</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> a<span style="color: #66cc66;">.</span>no<span style="color: #66cc66;">,</span>
       sum<span style="color: #66cc66;">&#40;</span>case
             when a<span style="color: #66cc66;">.</span><span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #993333; font-weight: bold;">IN</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'A'</span><span style="color: #66cc66;">&#41;</span> then
              a<span style="color: #66cc66;">.</span>score <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">2</span>
             else
              a<span style="color: #66cc66;">.</span>score <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">5</span>
           end<span style="color: #66cc66;">&#41;</span> score
  <span style="color: #993333; font-weight: bold;">FROM</span> fact_table a
 <span style="color: #993333; font-weight: bold;">GROUP</span> <span style="color: #993333; font-weight: bold;">BY</span> a<span style="color: #66cc66;">.</span>no</pre></div></div>

<p>下面是一个可能的结果，第一行的数据是没有启用Smart Scan技术的结果，第二行是启用了Smart Scan的结果。</p>
<table border="1" cellspacing="0" cellpadding="2" width="672">
<tbody>
<tr>
<td width="105" valign="top"><strong><em>Type</em></strong></td>
<td width="69" valign="top"><strong><em>Elapsed</em></strong></td>
<td width="80" valign="top"><strong><em>DB CPU%</em></strong></td>
<td width="89" valign="top"><strong><em>IO(GB/s)</em></strong></td>
<td width="101" valign="top"><strong><em>Storage CPU</em></strong></td>
<td width="226" valign="top"><strong><em>Storage Network(GB/s)</em></strong></td>
</tr>
<tr>
<td width="105" valign="top">Non-Exadata</td>
<td width="69" valign="top">90s</td>
<td width="80" valign="top">57</td>
<td width="89" valign="top">7</td>
<td width="101" valign="top">1</td>
<td width="226" valign="top">7</td>
</tr>
<tr>
<td width="105" valign="top">Exadata</td>
<td width="69" valign="top">45s</td>
<td width="80" valign="top">81</td>
<td width="89" valign="top">11</td>
<td width="101" valign="top">30</td>
<td width="226" valign="top">4</td>
</tr>
</tbody>
</table>
<p>第一行比较容易理解，存贮阵列/结点的数据以7GB/s的速度通过Storage network传输到DB结点进行，DB CPU的利用率达到了57%。</p>
<p>显而易见，这时瓶颈出现在存贮网络上，如果启用了Smart Scan，则Exadata会在存贮结点上首先对数据进行处理(存贮结点的CPU利用率为30%)，然后把其中有效的数据以4GB/s的速度传输到DB结点进行处理，由于DB结点接收到更多的有效数据(90*7/45=14GB/s)，CPU也变得更加繁忙起来(81%)。</p>
<p>Exadata在这里做了哪些事情呢？</p>
<p>1. 只进行有效数据的传输，这里，只传输表fact_table里三列的数据(no, key和score)</p>
<p>2. 解决了原来pre-Exadata可能碰到的网络瓶颈问题</p>
<p>3. 让DB结点的CPU更加高效的利用起来</p>
]]></content:encoded>
			<wfw:commentRss>http://www.os2ora.com/oracle-database-future-exadata-1/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
