<?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; PKEY distribution</title>
	<atom:link href="http://www.os2ora.com/tag/pkey-distribution/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>如何分析AWR (4)</title>
		<link>http://www.os2ora.com/how-to-analyze-awr-report-4/</link>
		<comments>http://www.os2ora.com/how-to-analyze-awr-report-4/#comments</comments>
		<pubDate>Sun, 29 Nov 2009 07:58:55 +0000</pubDate>
		<dc:creator>Kaya</dc:creator>
				<category><![CDATA[Exadata]]></category>
		<category><![CDATA[Oracle管理与维护]]></category>
		<category><![CDATA[数据库性能调优]]></category>
		<category><![CDATA[11gR2]]></category>
		<category><![CDATA[Automatic Workload Repository]]></category>
		<category><![CDATA[AWR]]></category>
		<category><![CDATA[CPU-bound]]></category>
		<category><![CDATA[DBA_HIST_ACTIVE_SESS_HISTORY]]></category>
		<category><![CDATA[direct-path load]]></category>
		<category><![CDATA[external table]]></category>
		<category><![CDATA[high water mark]]></category>
		<category><![CDATA[HV contention]]></category>
		<category><![CDATA[HW contention]]></category>
		<category><![CDATA[PKEY distribution]]></category>
		<category><![CDATA[ramdom local]]></category>

		<guid isPermaLink="false">http://www.os2ora.com/how-to-analyze-awr-report-4/</guid>
		<description><![CDATA[构建DSS系统的第一步离不开数据加载，通过文本文件加载是最常见的方式，Oracle提供了外部表加载的方法，即把一个文本文件当成一个正常的表来进行操作，通过类似insert /*+ append */ into table select from external_table的方式进行加载。
数据加载是一个CPU-Bound的过程，不过是通过什么工具，external table也好，sqlldr也好，imp也好，impdp也好。
这个过程的AWR报告会是怎么样子的呢......]]></description>
			<content:encoded><![CDATA[<p>Kaya 发表于 <a href="http://www.os2ora.com/">os2ora.com</a></p>
<p>如果这个系列是按“总-分-总”组织的话，接下来的系列应该是进行“分”这一部分了。</p>
<p>构建DSS系统的第一步离不开数据加载，通过文本文件加载是最常见的方式，Oracle提供了外部表加载的方法，即把一个文本文件当成一个正常的表来进行操作，通过类似insert /*+ append */ into table select from external_table的方式进行加载。</p>
<p>数据加载是一个CPU-Bound的过程，不过是通过什么工具，external table也好，sqlldr也好，imp也好，impdp也好。换句话说，如果连数据加载都出现IO瓶颈，这个系统的配置就说不过去了。</p>
<p>这个过程的AWR报告会是怎么样子的呢？</p>
<p>先做个一般的假定，从外部表加载数据到一个本地分区表。</p>
<p>Top 5 Timed Events类似下面：</p>
<p><a href="http://www.os2ora.com/wp-content/uploads/2009/11/image18.png"><img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="169" alt="image" src="http://www.os2ora.com/wp-content/uploads/2009/11/image_thumb17.png" width="464" border="0" /></a> </p>
<p>如果去抓取这段时间DBA_HIST_ACTIVE_SESS_HISTORY的数据，并转换为图表的话，我们会得到更形象的Top 10 Wait Events.</p>
<p>（如何实现这一步可以参考<a href="http://www.os2ora.com/ash-pivot-by-oracle/">用Oracle实现ASH的数据透视图</a>）</p>
<p><a href="http://www.os2ora.com/wp-content/uploads/2009/11/image19.png"><img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="223" alt="image" src="http://www.os2ora.com/wp-content/uploads/2009/11/image_thumb18.png" width="804" border="0" /></a> </p>
<p>enq: HV &#8211; contention是什么东西呢？</p>
<p>在11.2以前，对于分区表的parallel direct-path load，Oracle采用的是brokered load的方式，即所有的PX Slaves共享对每个分区的high water mark的访问，通过轮流持有high water mark实现对每个segment添加新的blocks。这种方法对于充分利用extent的空间是有帮助的，不过带来的问题就是对high water mark的竞争，也就是这里的enq: HV &#8211; contention。在执行计划中，这以RANDOM LOCAL 标记。下面是一个例子:</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">--------------------------------------------------------------------------------------------------------------------------</span>
<span style="color: #66cc66;">|</span> Id  <span style="color: #66cc66;">|</span> Operation                        <span style="color: #66cc66;">|</span> Name     <span style="color: #66cc66;">|</span> Rows  <span style="color: #66cc66;">|</span> Bytes <span style="color: #66cc66;">|</span> Cost <span style="color: #66cc66;">&#40;</span>%CPU<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">|</span> Time     <span style="color: #66cc66;">|</span>    TQ  <span style="color: #66cc66;">|</span>IN<span style="color: #66cc66;">-</span>OUT<span style="color: #66cc66;">|</span> PQ Distrib <span style="color: #66cc66;">|</span>
<span style="color: #808080; font-style: italic;">--------------------------------------------------------------------------------------------------------------------------</span>
<span style="color: #66cc66;">|</span>   <span style="color: #cc66cc;">0</span> <span style="color: #66cc66;">|</span> <span style="color: #993333; font-weight: bold;">INSERT</span> STATEMENT                 <span style="color: #66cc66;">|</span>          <span style="color: #66cc66;">|</span>  <span style="color: #cc66cc;">8168</span> <span style="color: #66cc66;">|</span>    14M<span style="color: #66cc66;">|</span>     <span style="color: #cc66cc;">2</span>   <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">|</span> 00:00:01 <span style="color: #66cc66;">|</span>        <span style="color: #66cc66;">|</span>      <span style="color: #66cc66;">|</span>            <span style="color: #66cc66;">|</span>
<span style="color: #66cc66;">|</span>   <span style="color: #cc66cc;">1</span> <span style="color: #66cc66;">|</span>  PX COORDINATOR                  <span style="color: #66cc66;">|</span>          <span style="color: #66cc66;">|</span>       <span style="color: #66cc66;">|</span>       <span style="color: #66cc66;">|</span>            <span style="color: #66cc66;">|</span>          <span style="color: #66cc66;">|</span>        <span style="color: #66cc66;">|</span>      <span style="color: #66cc66;">|</span>            <span style="color: #66cc66;">|</span>
<span style="color: #66cc66;">|</span>   <span style="color: #cc66cc;">2</span> <span style="color: #66cc66;">|</span>   PX SEND QC <span style="color: #66cc66;">&#40;</span>RANDOM<span style="color: #66cc66;">&#41;</span>            <span style="color: #66cc66;">|</span> :TQ10001 <span style="color: #66cc66;">|</span>  <span style="color: #cc66cc;">8168</span> <span style="color: #66cc66;">|</span>    14M<span style="color: #66cc66;">|</span>     <span style="color: #cc66cc;">2</span>   <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">|</span> 00:00:01 <span style="color: #66cc66;">|</span>  Q1<span style="color: #66cc66;">,</span>01 <span style="color: #66cc66;">|</span> P<span style="color: #66cc66;">-</span>&amp;gt;S <span style="color: #66cc66;">|</span> QC <span style="color: #66cc66;">&#40;</span>RAND<span style="color: #66cc66;">&#41;</span>  <span style="color: #66cc66;">|</span>
<span style="color: #66cc66;">|</span>   <span style="color: #cc66cc;">3</span> <span style="color: #66cc66;">|</span>    <span style="color: #993333; font-weight: bold;">LOAD</span> <span style="color: #993333; font-weight: bold;">AS</span> <span style="color: #993333; font-weight: bold;">SELECT</span>                <span style="color: #66cc66;">|</span> TAB      <span style="color: #66cc66;">|</span>       <span style="color: #66cc66;">|</span>       <span style="color: #66cc66;">|</span>            <span style="color: #66cc66;">|</span>          <span style="color: #66cc66;">|</span>  Q1<span style="color: #66cc66;">,</span>01 <span style="color: #66cc66;">|</span> PCWP <span style="color: #66cc66;">|</span>            <span style="color: #66cc66;">|</span>
<span style="color: #66cc66;">|</span>   <span style="color: #cc66cc;">4</span> <span style="color: #66cc66;">|</span>     PX RECEIVE                   <span style="color: #66cc66;">|</span>          <span style="color: #66cc66;">|</span>  <span style="color: #cc66cc;">8168</span> <span style="color: #66cc66;">|</span>    14M<span style="color: #66cc66;">|</span>     <span style="color: #cc66cc;">2</span>   <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">|</span> 00:00:01 <span style="color: #66cc66;">|</span>  Q1<span style="color: #66cc66;">,</span>01 <span style="color: #66cc66;">|</span> PCWP <span style="color: #66cc66;">|</span>            <span style="color: #66cc66;">|</span>
<span style="color: #66cc66;">|</span>   <span style="color: #cc66cc;">5</span> <span style="color: #66cc66;">|</span>      PX SEND RANDOM <span style="color: #993333; font-weight: bold;">LOCAL</span>        <span style="color: #66cc66;">|</span> :TQ10000 <span style="color: #66cc66;">|</span>  <span style="color: #cc66cc;">8168</span> <span style="color: #66cc66;">|</span>    14M<span style="color: #66cc66;">|</span>     <span style="color: #cc66cc;">2</span>   <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">|</span> 00:00:01 <span style="color: #66cc66;">|</span>  Q1<span style="color: #66cc66;">,</span>00 <span style="color: #66cc66;">|</span> P<span style="color: #66cc66;">-</span>&amp;gt;P <span style="color: #66cc66;">|</span> RANDOM LOCA<span style="color: #66cc66;">|</span>
<span style="color: #66cc66;">|</span>   <span style="color: #cc66cc;">6</span> <span style="color: #66cc66;">|</span>       PX BLOCK ITERATOR          <span style="color: #66cc66;">|</span>          <span style="color: #66cc66;">|</span>  <span style="color: #cc66cc;">8168</span> <span style="color: #66cc66;">|</span>    14M<span style="color: #66cc66;">|</span>     <span style="color: #cc66cc;">2</span>   <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">|</span> 00:00:01 <span style="color: #66cc66;">|</span>  Q1<span style="color: #66cc66;">,</span>00 <span style="color: #66cc66;">|</span> PCWC <span style="color: #66cc66;">|</span>            <span style="color: #66cc66;">|</span>
<span style="color: #66cc66;">|</span>   <span style="color: #cc66cc;">7</span> <span style="color: #66cc66;">|</span>        EXTERNAL <span style="color: #993333; font-weight: bold;">TABLE</span> ACCESS <span style="color: #993333; font-weight: bold;">FULL</span><span style="color: #66cc66;">|</span> ET_TAB   <span style="color: #66cc66;">|</span>  <span style="color: #cc66cc;">8168</span> <span style="color: #66cc66;">|</span>    14M<span style="color: #66cc66;">|</span>     <span style="color: #cc66cc;">2</span>   <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">|</span> 00:00:01 <span style="color: #66cc66;">|</span>  Q1<span style="color: #66cc66;">,</span>00 <span style="color: #66cc66;">|</span> PCWP <span style="color: #66cc66;">|</span>            <span style="color: #66cc66;">|</span>
<span style="color: #808080; font-style: italic;">--------------------------------------------------------------------------------------------------------------------------</span></pre></div></div>

<p>一个好消息是，11.2引入了一种新的方式，叫做PKEY distribution。在这种方式下，一个特定的分区只交给一个或多个特定的PX slave负责，这种方式不仅减少了对high water mark的争用，而且可以实现partition内更好的压缩率。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.os2ora.com/how-to-analyze-awr-report-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
