<?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; Exadata</title>
	<atom:link href="http://www.os2ora.com/tag/exadata/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 架构分析 (6)</title>
		<link>http://www.os2ora.com/exadata-architecture-analysis-6/</link>
		<comments>http://www.os2ora.com/exadata-architecture-analysis-6/#comments</comments>
		<pubDate>Thu, 24 Jun 2010 03:25:27 +0000</pubDate>
		<dc:creator>Kaya</dc:creator>
				<category><![CDATA[Exadata]]></category>
		<category><![CDATA[数据库性能调优]]></category>
		<category><![CDATA[系统架构]]></category>
		<category><![CDATA[Cell Flash Cache]]></category>
		<category><![CDATA[EHCC]]></category>
		<category><![CDATA[Exadata Hybrid Columnar Compression]]></category>
		<category><![CDATA[Flash Cache]]></category>
		<category><![CDATA[Partition]]></category>
		<category><![CDATA[Storage Index]]></category>

		<guid isPermaLink="false">http://www.os2ora.com/exadata-architecture-analysis-6/</guid>
		<description><![CDATA[从第一篇开始到现在，Cell Flash Cache, Exadata Hybrid Columnar Compression, Storage Index轮番上场，加上V1版本里出现的Smart Scan，Infiniband等等，多少会给人以眼花缭乱的感觉。

最根本的一点，当然在于Exadata本身是一个balanced system。

不过，这些技术做为一个整体对实际应用会带来多大的好处呢？这不是一个很好回答的问题，当然也可以用一句话回答——具体问题具体分析......]]></description>
			<content:encoded><![CDATA[<p>Kaya 发表于 <a href="http://www.os2ora.com/">os2ora.com</a></p>
<p>做下回顾与思考。</p>
<p>从第一篇开始到现在，Cell Flash Cache, Exadata Hybrid Columnar Compression, Storage Index轮番上场，加上V1版本里出现的Smart Scan，Infiniband等等，多少会给人以眼花缭乱的感觉。</p>
<p>最根本的一点，当然在于Exadata本身是一个balanced system。</p>
<p>不过，这些技术做为一个整体对实际应用会带来多大的好处呢？这不是一个很好回答的问题，当然也可以用一句话回答——具体问题具体分析。</p>
<p>思路应该是这样的，首先明了当前系统的现状</p>
<ul>
<li>如果当前系统运作得很好，简直完美的设计，分区，并行，并发控制等都无可挑剔，业务量也没超过系统极限，那么也许只有一些技术会对性能提升比较明显，如Smart Scan。举个例子，如果原来系统没存在IO上的瓶颈，Cell Flash Cache就英雄无用武之地了。</li>
<li>如果当前系统运作得很好，简直完美的设计，分区，并行，并发控制等都无可挑剔，业务量大大超过系统极限，系统出现CPU或者IO或者Network上的瓶颈了，这时或许就是考虑升级的时候了。</li>
<li>如果当前系统为小数据量所设计，如刚开始没有分区，但随着业务量的增长，系统出现CPU或者IO或者Network上的瓶颈了，这时可以有两条途径，改进原来的设计，或者考虑硬件升级了。</li>
</ul>
<p>设计上的改进包括</p>
<ul>
<li>分区</li>
<li>压缩</li>
<li>etc.</li>
</ul>
<p>硬件上的升级包括</p>
<ul>
<li>Smart Scan</li>
<li>Flash Cache</li>
<li>Storage Index</li>
<li>etc.</li>
</ul>
<p>最后，做为一个例子，可以考核一个原来的系统（没分区，没压缩，没Flash Cache，没Storage Index），分区，压缩，Flash Cache，Storage Index，分别能带来的性能上的提升，及做为一个整体带来的性能提升。</p>
<p>感性认识还是更重要的，虽然我把它放在最后面了。</p>
<p>&#160;</p>
<p><a href="http://www.os2ora.com/wp-content/uploads/2010/06/image1.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="342" alt="image" src="http://www.os2ora.com/wp-content/uploads/2010/06/image_thumb1.png" width="662" border="0" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.os2ora.com/exadata-architecture-analysis-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<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 架构分析 (3)</title>
		<link>http://www.os2ora.com/exadata-architecture-analysis-3/</link>
		<comments>http://www.os2ora.com/exadata-architecture-analysis-3/#comments</comments>
		<pubDate>Thu, 20 May 2010 12:14:37 +0000</pubDate>
		<dc:creator>Kaya</dc:creator>
				<category><![CDATA[Exadata]]></category>
		<category><![CDATA[数据库性能调优]]></category>
		<category><![CDATA[系统架构]]></category>
		<category><![CDATA[Cell Flash Cache]]></category>
		<category><![CDATA[Flash Cache]]></category>
		<category><![CDATA[IOPS]]></category>
		<category><![CDATA[MBPS]]></category>
		<category><![CDATA[混合负载]]></category>

		<guid isPermaLink="false">http://www.os2ora.com/exadata-architecture-analysis-3/</guid>
		<description><![CDATA[关于Cell Flash Cache，或许大家都余兴未尽，例如：
1. 一个真正的生产系统，真的需要1,000,000 IOPS吗？
2. Cell Flash Cache对用户带来的真正的好处在哪里？
假设用户的逻辑IOPS达到1,000,000 IO/s. buffer cache命中率为98%。则落在Cell Flash Cache中的IOPS为20,000次......]]></description>
			<content:encoded><![CDATA[<p>Kaya 发表于 <a href="http://www.os2ora.com/">os2ora.com</a></p>
<p>关于Cell Flash Cache，好象大家都余兴未尽，例如：    <br />1. 一个真正的生产系统，真的需要1,000,000 IOPS吗？     <br />2. Cell Flash Cache对用户带来的真正的好处在哪里？</p>
<p>假设用户的<strong><em>逻辑IOPS</em></strong>达到1,000,000 IO/s. buffer cache命中率为98%。则落在Cell Flash Cache中的IOPS为20,000次。这个数据对于1/4配，即一个quarter的Exadata来说，当然是小菜一碟，不过对于一般磁盘呢？一般的磁盘每秒大约为300 IOPS，这意味着需要有20,000/300=66个磁盘，这已经是一个不低的配置了。</p>
<p>再进一步考虑，如果系统想支持混合负载，即系统同时支持数据仓库查询和OLTP在线系统。那么这时OLTP的性能将会受到严重影响。要知道，数据仓库查询要求的MBPS，而OLTP要求的则是IOPS，这两个指标是会相互影响的，用户一般考虑的是OLTP优先。甚至于出现一种情形，我不清楚下面这种情况会多普遍：</p>
<blockquote><p>在IO受限的情形下，不敢对OLAP查询启用并行，由于不启用并行，OLAP查询很久不返回结果，进一步地，用户会在表上建更多的索引来“优化”这些OLAP查询。最终，整个混合型的系统就变成了一个类似OLTP的系统了。</p>
</blockquote>
<p>在这种情形下，Cell Flash Cache或许会带有性能上的实质提升，通过Flash Cache会大大提升OLTP的查询性能，同时，后端的磁盘和Flash Cache会<em><strong>一起</strong></em>提供足够的带宽给OLAP查询(很聪明吧)，这在硬件上保证了两者并存的可能性。另一方面，由于在IO上的财大气粗，对原有OLAP的过度优化终于可以停止了，系统设计因些会回归简单，与此对应地，系统维护成本也会大大降低。</p>
<p>或许这是Cell Flash Cache可能给大家带来的一个很诱人的地方。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.os2ora.com/exadata-architecture-analysis-3/feed/</wfw:commentRss>
		<slash:comments>0</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>什么叫做随机查询</title>
		<link>http://www.os2ora.com/what-is-ad-hoc-query/</link>
		<comments>http://www.os2ora.com/what-is-ad-hoc-query/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 17:30:48 +0000</pubDate>
		<dc:creator>Kaya</dc:creator>
				<category><![CDATA[Exadata]]></category>
		<category><![CDATA[数据库性能调优]]></category>
		<category><![CDATA[Ad-Hoc]]></category>
		<category><![CDATA[Index]]></category>
		<category><![CDATA[随机查询]]></category>

		<guid isPermaLink="false">http://www.os2ora.com/what-is-ad-hoc-query/</guid>
		<description><![CDATA[在做Exadata相关的培训时，Ad-Hoc Query是经常被提及的一个词，中文的翻译应该就叫做随机查询吧，望文生义，就是随机的，不能预料到的查询。但究竟有多随机呢，一些活生生的例子可能更能说明问题。
我们组设计了一个查询，每次show出来的时候，底下总有人暗底里偷笑不止......]]></description>
			<content:encoded><![CDATA[<p>Kaya 发表于 <a href="http://www.os2ora.com/">os2ora.com</a></p>
<p>在做Exadata相关的培训时，Ad-Hoc Query是经常被提及的一个词，中文的翻译应该就叫做随机查询吧，望文生义，就是随机的，不能预料到的查询。但究竟有多随机呢，一些活生生的例子可能更能说明问题。</p>
<p>我们组设计了一个查询，每次show出来的时候，底下总有人暗底里偷笑不止。挺好玩的一件事情。这个查询是这样的：</p>
<p>我们要查询在2009年5月份第一个星期在北京市的所有百货超市里最受某一类型的消费者欢迎的前十个商品，这一类型的购物者有以下的购物癖好：购物的时候不买banana。</p>
<p>这个查询其实是基于一个零售业系统，里面存贮着全国所有超市的交易记录，这是一个TB级的数据库。如果有人说他能通过设计索引让这个查询跑得飞快，我可真不敢相信。</p>
<p>这种查询是有可能的，或许某天某位业务经理就跑到你(DBA)面前，帮我查查…，多久能给我结果？你的答案会是分钟，小时，天，还是月呢？</p>
<p>做个类推，中国移动版的:</p>
<p>我们要查询在2009年5月份第一个星期在北京市最受某一类型的手机用户欢迎的前十个热线号码，这一类型的手机用户有以下的癖好：发送的短消息里面从没有出现过类似”I love you”的语句。</p>
<p>或者你可以针对任一个数据库系统构造出类似的ad-hoc查询语句了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.os2ora.com/what-is-ad-hoc-query/feed/</wfw:commentRss>
		<slash:comments>0</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>
	</channel>
</rss>
