<?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; IO</title>
	<atom:link href="http://www.os2ora.com/tag/io/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.os2ora.com</link>
	<description>专注于现实世界Oracle数据库的高性能，高可扩展性与新一代数据库Exadata架构</description>
	<lastBuildDate>Mon, 19 Sep 2011 09:10:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>性能调优是一个对系统资源均衡取舍的过程</title>
		<link>http://www.os2ora.com/performance-tunning-is-a-tradeoff-among-resource-consumption/</link>
		<comments>http://www.os2ora.com/performance-tunning-is-a-tradeoff-among-resource-consumption/#comments</comments>
		<pubDate>Sat, 30 May 2009 15:43:11 +0000</pubDate>
		<dc:creator>Kaya</dc:creator>
				<category><![CDATA[数据库性能调优]]></category>
		<category><![CDATA[CPU]]></category>
		<category><![CDATA[IO]]></category>
		<category><![CDATA[Memory]]></category>
		<category><![CDATA[multitable insert]]></category>
		<category><![CDATA[OS]]></category>
		<category><![CDATA[tradeoff]]></category>
		<category><![CDATA[系统资源]]></category>

		<guid isPermaLink="false">http://www.os2ora.com/performance-tunning-is-a-tradeoff-among-resource-consumption/</guid>
		<description><![CDATA[这个世界上没有绝对的真理。大家都认为对的东西，在某种场合却是不适宜的。我们需要对系统资源利用情况进行综合的分析，才能最终确定一个最适宜的方式。这里并没有一个公式化的经验，证明multi_table_insert永远都是优于single table insert的......]]></description>
			<content:encoded><![CDATA[<p>Kaya 发表于 <a href="http://www.os2ora.com">os2ora.com</a></p>
<p>这个世界上没有绝对的真理。大家都认为对的东西，在某种场合却是不适宜的。</p>
<p>Oracle有一个很有用的扩展，叫做<a href="http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/statements_9014.htm#i2095116">multi_table_insert</a>, 它可以实现把一个子查询的结果根据条件把每件记录插入到一个或多个表中。例如下面的例子:</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">ALL</span>
      <span style="color: #993333; font-weight: bold;">INTO</span> sales <span style="color: #66cc66;">&#40;</span>prod_id<span style="color: #66cc66;">,</span> cust_id<span style="color: #66cc66;">,</span> time_id<span style="color: #66cc66;">,</span> amount<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span>product_id<span style="color: #66cc66;">,</span> customer_id<span style="color: #66cc66;">,</span> weekly_start_date<span style="color: #66cc66;">,</span> sales_sun<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">INTO</span> sales <span style="color: #66cc66;">&#40;</span>prod_id<span style="color: #66cc66;">,</span> cust_id<span style="color: #66cc66;">,</span> time_id<span style="color: #66cc66;">,</span> amount<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span>product_id<span style="color: #66cc66;">,</span> customer_id<span style="color: #66cc66;">,</span> weekly_start_date<span style="color: #66cc66;">+</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">,</span> sales_mon<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">INTO</span> sales <span style="color: #66cc66;">&#40;</span>prod_id<span style="color: #66cc66;">,</span> cust_id<span style="color: #66cc66;">,</span> time_id<span style="color: #66cc66;">,</span> amount<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span>product_id<span style="color: #66cc66;">,</span> customer_id<span style="color: #66cc66;">,</span> weekly_start_date<span style="color: #66cc66;">+</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">,</span> sales_tue<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">INTO</span> sales <span style="color: #66cc66;">&#40;</span>prod_id<span style="color: #66cc66;">,</span> cust_id<span style="color: #66cc66;">,</span> time_id<span style="color: #66cc66;">,</span> amount<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span>product_id<span style="color: #66cc66;">,</span> customer_id<span style="color: #66cc66;">,</span> weekly_start_date<span style="color: #66cc66;">+</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">,</span> sales_wed<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">INTO</span> sales <span style="color: #66cc66;">&#40;</span>prod_id<span style="color: #66cc66;">,</span> cust_id<span style="color: #66cc66;">,</span> time_id<span style="color: #66cc66;">,</span> amount<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span>product_id<span style="color: #66cc66;">,</span> customer_id<span style="color: #66cc66;">,</span> weekly_start_date<span style="color: #66cc66;">+</span><span style="color: #cc66cc;">4</span><span style="color: #66cc66;">,</span> sales_thu<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">INTO</span> sales <span style="color: #66cc66;">&#40;</span>prod_id<span style="color: #66cc66;">,</span> cust_id<span style="color: #66cc66;">,</span> time_id<span style="color: #66cc66;">,</span> amount<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span>product_id<span style="color: #66cc66;">,</span> customer_id<span style="color: #66cc66;">,</span> weekly_start_date<span style="color: #66cc66;">+</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">,</span> sales_fri<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">INTO</span> sales <span style="color: #66cc66;">&#40;</span>prod_id<span style="color: #66cc66;">,</span> cust_id<span style="color: #66cc66;">,</span> time_id<span style="color: #66cc66;">,</span> amount<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span>product_id<span style="color: #66cc66;">,</span> customer_id<span style="color: #66cc66;">,</span> weekly_start_date<span style="color: #66cc66;">+</span><span style="color: #cc66cc;">6</span><span style="color: #66cc66;">,</span> sales_sat<span style="color: #66cc66;">&#41;</span>
   <span style="color: #993333; font-weight: bold;">SELECT</span> product_id<span style="color: #66cc66;">,</span> customer_id<span style="color: #66cc66;">,</span> weekly_start_date<span style="color: #66cc66;">,</span> sales_sun<span style="color: #66cc66;">,</span>
      sales_mon<span style="color: #66cc66;">,</span> sales_tue<span style="color: #66cc66;">,</span> sales_wed<span style="color: #66cc66;">,</span> sales_thu<span style="color: #66cc66;">,</span> sales_fri<span style="color: #66cc66;">,</span> sales_sat
      <span style="color: #993333; font-weight: bold;">FROM</span> sales_input_table;</pre></div></div>

<p>它实现把sales_input_table里的每条记录变化成7条记录，并插入到目标表sales中。稍微做下改写，让每条记录插入到两个表中，就是下面的例子:</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">ALL</span>
      <span style="color: #993333; font-weight: bold;">INTO</span> sales <span style="color: #66cc66;">&#40;</span>prod_id<span style="color: #66cc66;">,</span> cust_id<span style="color: #66cc66;">,</span> time_id<span style="color: #66cc66;">,</span> amount<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span>product_id<span style="color: #66cc66;">,</span> customer_id<span style="color: #66cc66;">,</span> weekly_start_date<span style="color: #66cc66;">,</span> sales_sun<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">INTO</span> sales <span style="color: #66cc66;">&#40;</span>prod_id<span style="color: #66cc66;">,</span> cust_id<span style="color: #66cc66;">,</span> time_id<span style="color: #66cc66;">,</span> amount<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span>product_id<span style="color: #66cc66;">,</span> customer_id<span style="color: #66cc66;">,</span> weekly_start_date<span style="color: #66cc66;">+</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">,</span> sales_mon<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">INTO</span> sales <span style="color: #66cc66;">&#40;</span>prod_id<span style="color: #66cc66;">,</span> cust_id<span style="color: #66cc66;">,</span> time_id<span style="color: #66cc66;">,</span> amount<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span>product_id<span style="color: #66cc66;">,</span> customer_id<span style="color: #66cc66;">,</span> weekly_start_date<span style="color: #66cc66;">+</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">,</span> sales_tue<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">INTO</span> sales <span style="color: #66cc66;">&#40;</span>prod_id<span style="color: #66cc66;">,</span> cust_id<span style="color: #66cc66;">,</span> time_id<span style="color: #66cc66;">,</span> amount<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span>product_id<span style="color: #66cc66;">,</span> customer_id<span style="color: #66cc66;">,</span> weekly_start_date<span style="color: #66cc66;">+</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">,</span> sales_wed<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">INTO</span> sales <span style="color: #66cc66;">&#40;</span>prod_id<span style="color: #66cc66;">,</span> cust_id<span style="color: #66cc66;">,</span> time_id<span style="color: #66cc66;">,</span> amount<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span>product_id<span style="color: #66cc66;">,</span> customer_id<span style="color: #66cc66;">,</span> weekly_start_date<span style="color: #66cc66;">+</span><span style="color: #cc66cc;">4</span><span style="color: #66cc66;">,</span> sales_thu<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">INTO</span> sales <span style="color: #66cc66;">&#40;</span>prod_id<span style="color: #66cc66;">,</span> cust_id<span style="color: #66cc66;">,</span> time_id<span style="color: #66cc66;">,</span> amount<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span>product_id<span style="color: #66cc66;">,</span> customer_id<span style="color: #66cc66;">,</span> weekly_start_date<span style="color: #66cc66;">+</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">,</span> sales_fri<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">INTO</span> sales <span style="color: #66cc66;">&#40;</span>prod_id<span style="color: #66cc66;">,</span> cust_id<span style="color: #66cc66;">,</span> time_id<span style="color: #66cc66;">,</span> amount<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span>product_id<span style="color: #66cc66;">,</span> customer_id<span style="color: #66cc66;">,</span> weekly_start_date<span style="color: #66cc66;">+</span><span style="color: #cc66cc;">6</span><span style="color: #66cc66;">,</span> sales_sat<span style="color: #66cc66;">&#41;</span>
<span style="color: #808080; font-style: italic;">--</span>
      <span style="color: #993333; font-weight: bold;">INTO</span> sales2 <span style="color: #66cc66;">&#40;</span>prod_id<span style="color: #66cc66;">,</span> cust_id<span style="color: #66cc66;">,</span> time_id<span style="color: #66cc66;">,</span> amount<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span>product_id<span style="color: #66cc66;">,</span> customer_id<span style="color: #66cc66;">,</span> weekly_start_date<span style="color: #66cc66;">,</span> sales_sun<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">INTO</span> sales2 <span style="color: #66cc66;">&#40;</span>prod_id<span style="color: #66cc66;">,</span> cust_id<span style="color: #66cc66;">,</span> time_id<span style="color: #66cc66;">,</span> amount<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span>product_id<span style="color: #66cc66;">,</span> customer_id<span style="color: #66cc66;">,</span> weekly_start_date<span style="color: #66cc66;">+</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">,</span> sales_mon<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">INTO</span> sales2 <span style="color: #66cc66;">&#40;</span>prod_id<span style="color: #66cc66;">,</span> cust_id<span style="color: #66cc66;">,</span> time_id<span style="color: #66cc66;">,</span> amount<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span>product_id<span style="color: #66cc66;">,</span> customer_id<span style="color: #66cc66;">,</span> weekly_start_date<span style="color: #66cc66;">+</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">,</span> sales_tue<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">INTO</span> sales2 <span style="color: #66cc66;">&#40;</span>prod_id<span style="color: #66cc66;">,</span> cust_id<span style="color: #66cc66;">,</span> time_id<span style="color: #66cc66;">,</span> amount<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span>product_id<span style="color: #66cc66;">,</span> customer_id<span style="color: #66cc66;">,</span> weekly_start_date<span style="color: #66cc66;">+</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">,</span> sales_wed<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">INTO</span> sales2 <span style="color: #66cc66;">&#40;</span>prod_id<span style="color: #66cc66;">,</span> cust_id<span style="color: #66cc66;">,</span> time_id<span style="color: #66cc66;">,</span> amount<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span>product_id<span style="color: #66cc66;">,</span> customer_id<span style="color: #66cc66;">,</span> weekly_start_date<span style="color: #66cc66;">+</span><span style="color: #cc66cc;">4</span><span style="color: #66cc66;">,</span> sales_thu<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">INTO</span> sales2 <span style="color: #66cc66;">&#40;</span>prod_id<span style="color: #66cc66;">,</span> cust_id<span style="color: #66cc66;">,</span> time_id<span style="color: #66cc66;">,</span> amount<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span>product_id<span style="color: #66cc66;">,</span> customer_id<span style="color: #66cc66;">,</span> weekly_start_date<span style="color: #66cc66;">+</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">,</span> sales_fri<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">INTO</span> sales2 <span style="color: #66cc66;">&#40;</span>prod_id<span style="color: #66cc66;">,</span> cust_id<span style="color: #66cc66;">,</span> time_id<span style="color: #66cc66;">,</span> amount<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span>product_id<span style="color: #66cc66;">,</span> customer_id<span style="color: #66cc66;">,</span> weekly_start_date<span style="color: #66cc66;">+</span><span style="color: #cc66cc;">6</span><span style="color: #66cc66;">,</span> sales_sat<span style="color: #66cc66;">&#41;</span>
   <span style="color: #993333; font-weight: bold;">SELECT</span> product_id<span style="color: #66cc66;">,</span> customer_id<span style="color: #66cc66;">,</span> weekly_start_date<span style="color: #66cc66;">,</span> sales_sun<span style="color: #66cc66;">,</span>
      sales_mon<span style="color: #66cc66;">,</span> sales_tue<span style="color: #66cc66;">,</span> sales_wed<span style="color: #66cc66;">,</span> sales_thu<span style="color: #66cc66;">,</span> sales_fri<span style="color: #66cc66;">,</span> sales_sat
      <span style="color: #993333; font-weight: bold;">FROM</span> sales_input_table;</pre></div></div>

<p>和下面的实现比较，哪种方式性能好呢？</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">ALL</span>
      <span style="color: #993333; font-weight: bold;">INTO</span> sales <span style="color: #66cc66;">&#40;</span>prod_id<span style="color: #66cc66;">,</span> cust_id<span style="color: #66cc66;">,</span> time_id<span style="color: #66cc66;">,</span> amount<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span>product_id<span style="color: #66cc66;">,</span> customer_id<span style="color: #66cc66;">,</span> weekly_start_date<span style="color: #66cc66;">,</span> sales_sun<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">INTO</span> sales <span style="color: #66cc66;">&#40;</span>prod_id<span style="color: #66cc66;">,</span> cust_id<span style="color: #66cc66;">,</span> time_id<span style="color: #66cc66;">,</span> amount<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span>product_id<span style="color: #66cc66;">,</span> customer_id<span style="color: #66cc66;">,</span> weekly_start_date<span style="color: #66cc66;">+</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">,</span> sales_mon<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">INTO</span> sales <span style="color: #66cc66;">&#40;</span>prod_id<span style="color: #66cc66;">,</span> cust_id<span style="color: #66cc66;">,</span> time_id<span style="color: #66cc66;">,</span> amount<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span>product_id<span style="color: #66cc66;">,</span> customer_id<span style="color: #66cc66;">,</span> weekly_start_date<span style="color: #66cc66;">+</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">,</span> sales_tue<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">INTO</span> sales <span style="color: #66cc66;">&#40;</span>prod_id<span style="color: #66cc66;">,</span> cust_id<span style="color: #66cc66;">,</span> time_id<span style="color: #66cc66;">,</span> amount<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span>product_id<span style="color: #66cc66;">,</span> customer_id<span style="color: #66cc66;">,</span> weekly_start_date<span style="color: #66cc66;">+</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">,</span> sales_wed<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">INTO</span> sales <span style="color: #66cc66;">&#40;</span>prod_id<span style="color: #66cc66;">,</span> cust_id<span style="color: #66cc66;">,</span> time_id<span style="color: #66cc66;">,</span> amount<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span>product_id<span style="color: #66cc66;">,</span> customer_id<span style="color: #66cc66;">,</span> weekly_start_date<span style="color: #66cc66;">+</span><span style="color: #cc66cc;">4</span><span style="color: #66cc66;">,</span> sales_thu<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">INTO</span> sales <span style="color: #66cc66;">&#40;</span>prod_id<span style="color: #66cc66;">,</span> cust_id<span style="color: #66cc66;">,</span> time_id<span style="color: #66cc66;">,</span> amount<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span>product_id<span style="color: #66cc66;">,</span> customer_id<span style="color: #66cc66;">,</span> weekly_start_date<span style="color: #66cc66;">+</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">,</span> sales_fri<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">INTO</span> sales <span style="color: #66cc66;">&#40;</span>prod_id<span style="color: #66cc66;">,</span> cust_id<span style="color: #66cc66;">,</span> time_id<span style="color: #66cc66;">,</span> amount<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span>product_id<span style="color: #66cc66;">,</span> customer_id<span style="color: #66cc66;">,</span> weekly_start_date<span style="color: #66cc66;">+</span><span style="color: #cc66cc;">6</span><span style="color: #66cc66;">,</span> sales_sat<span style="color: #66cc66;">&#41;</span>
   <span style="color: #993333; font-weight: bold;">SELECT</span> product_id<span style="color: #66cc66;">,</span> customer_id<span style="color: #66cc66;">,</span> weekly_start_date<span style="color: #66cc66;">,</span> sales_sun<span style="color: #66cc66;">,</span>
      sales_mon<span style="color: #66cc66;">,</span> sales_tue<span style="color: #66cc66;">,</span> sales_wed<span style="color: #66cc66;">,</span> sales_thu<span style="color: #66cc66;">,</span> sales_fri<span style="color: #66cc66;">,</span> sales_sat
      <span style="color: #993333; font-weight: bold;">FROM</span> sales_input_table;
<span style="color: #808080; font-style: italic;">--</span>
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">ALL</span>
      <span style="color: #993333; font-weight: bold;">INTO</span> sales2 <span style="color: #66cc66;">&#40;</span>prod_id<span style="color: #66cc66;">,</span> cust_id<span style="color: #66cc66;">,</span> time_id<span style="color: #66cc66;">,</span> amount<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span>product_id<span style="color: #66cc66;">,</span> customer_id<span style="color: #66cc66;">,</span> weekly_start_date<span style="color: #66cc66;">,</span> sales_sun<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">INTO</span> sales2 <span style="color: #66cc66;">&#40;</span>prod_id<span style="color: #66cc66;">,</span> cust_id<span style="color: #66cc66;">,</span> time_id<span style="color: #66cc66;">,</span> amount<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span>product_id<span style="color: #66cc66;">,</span> customer_id<span style="color: #66cc66;">,</span> weekly_start_date<span style="color: #66cc66;">+</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">,</span> sales_mon<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">INTO</span> sales2 <span style="color: #66cc66;">&#40;</span>prod_id<span style="color: #66cc66;">,</span> cust_id<span style="color: #66cc66;">,</span> time_id<span style="color: #66cc66;">,</span> amount<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span>product_id<span style="color: #66cc66;">,</span> customer_id<span style="color: #66cc66;">,</span> weekly_start_date<span style="color: #66cc66;">+</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">,</span> sales_tue<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">INTO</span> sales2 <span style="color: #66cc66;">&#40;</span>prod_id<span style="color: #66cc66;">,</span> cust_id<span style="color: #66cc66;">,</span> time_id<span style="color: #66cc66;">,</span> amount<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span>product_id<span style="color: #66cc66;">,</span> customer_id<span style="color: #66cc66;">,</span> weekly_start_date<span style="color: #66cc66;">+</span><span style="color: #cc66cc;">3</span><span style="color: #66cc66;">,</span> sales_wed<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">INTO</span> sales2 <span style="color: #66cc66;">&#40;</span>prod_id<span style="color: #66cc66;">,</span> cust_id<span style="color: #66cc66;">,</span> time_id<span style="color: #66cc66;">,</span> amount<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span>product_id<span style="color: #66cc66;">,</span> customer_id<span style="color: #66cc66;">,</span> weekly_start_date<span style="color: #66cc66;">+</span><span style="color: #cc66cc;">4</span><span style="color: #66cc66;">,</span> sales_thu<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">INTO</span> sales2 <span style="color: #66cc66;">&#40;</span>prod_id<span style="color: #66cc66;">,</span> cust_id<span style="color: #66cc66;">,</span> time_id<span style="color: #66cc66;">,</span> amount<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span>product_id<span style="color: #66cc66;">,</span> customer_id<span style="color: #66cc66;">,</span> weekly_start_date<span style="color: #66cc66;">+</span><span style="color: #cc66cc;">5</span><span style="color: #66cc66;">,</span> sales_fri<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">INTO</span> sales2 <span style="color: #66cc66;">&#40;</span>prod_id<span style="color: #66cc66;">,</span> cust_id<span style="color: #66cc66;">,</span> time_id<span style="color: #66cc66;">,</span> amount<span style="color: #66cc66;">&#41;</span>
      <span style="color: #993333; font-weight: bold;">VALUES</span> <span style="color: #66cc66;">&#40;</span>product_id<span style="color: #66cc66;">,</span> customer_id<span style="color: #66cc66;">,</span> weekly_start_date<span style="color: #66cc66;">+</span><span style="color: #cc66cc;">6</span><span style="color: #66cc66;">,</span> sales_sat<span style="color: #66cc66;">&#41;</span>
   <span style="color: #993333; font-weight: bold;">SELECT</span> product_id<span style="color: #66cc66;">,</span> customer_id<span style="color: #66cc66;">,</span> weekly_start_date<span style="color: #66cc66;">,</span> sales_sun<span style="color: #66cc66;">,</span>
      sales_mon<span style="color: #66cc66;">,</span> sales_tue<span style="color: #66cc66;">,</span> sales_wed<span style="color: #66cc66;">,</span> sales_thu<span style="color: #66cc66;">,</span> sales_fri<span style="color: #66cc66;">,</span> sales_sat
      <span style="color: #993333; font-weight: bold;">FROM</span> sales_input_table;</pre></div></div>

<p>或许大家都认为第一种方式会运行得更快。毕竟，第一种方式比第二种方式少了一遍对sales_input_table的扫描。</p>
<p>正确答案呢？It depends!</p>
<p>第二种方式不一定比第二种方式慢，相反地，第二种方式比第一种方式具有更好的“可扩展性”。</p>
<p>在第一种方式下，当表sales和sales2(可能还有sales3,sales4)是一个有着大量分区（例如1024个子分区）的分区表时，用并行方式执行这条语句将需要大量的内存。一个可能的后果就是系统内存会变得严重不足，最终可以引起OS频繁进行Memory的Swapping，导致整个OS失去响应。</p>
<p>对于第二种方式，从系统资源的角度看，这是一个CPU-Bound的过程，IO在这里并不是瓶颈。多一遍对sales_input_table的扫描其实并不会带来性能上的明显下降。</p>
<p>可以看出，这里我们需要对CPU, IO, Memory的资源利用情况进行综合的分析，才能最终确定一个最适宜的方式。并没有一个公式化的经验，证明<a href="http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/statements_9014.htm#i2095116">multi_table_insert</a>永远都是优于<em>single table insert</em>的。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.os2ora.com/performance-tunning-is-a-tradeoff-among-resource-consumption/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

