<?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; 11gR2</title>
	<atom:link href="http://www.os2ora.com/tag/11gr2/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>11gR2出色的SQL Monitor Report</title>
		<link>http://www.os2ora.com/fantastic-11gr2-sql-monitor-report/</link>
		<comments>http://www.os2ora.com/fantastic-11gr2-sql-monitor-report/#comments</comments>
		<pubDate>Sat, 09 Jan 2010 14:20:28 +0000</pubDate>
		<dc:creator>Kaya</dc:creator>
				<category><![CDATA[数据库性能调优]]></category>
		<category><![CDATA[11gR2]]></category>
		<category><![CDATA[active session]]></category>
		<category><![CDATA[gather_plan_statistics]]></category>
		<category><![CDATA[parallel]]></category>
		<category><![CDATA[SQL Monitor Report]]></category>
		<category><![CDATA[新特性]]></category>

		<guid isPermaLink="false">http://www.os2ora.com/fantastic-11gr2-sql-monitor-report/</guid>
		<description><![CDATA[SQL Monitor Report是11g推出的一个新特性。如果说11gR1里的SQL Monitor Report已经达到可圈可点的程度，那么11gR2里的SQL Monitor Report可以说已经接近完美了。

这个SQL Monitor Report包含的信息比单纯的Execution Plan可全面多了，基本上，有了这份报告之后，troubleshooting所需要的大部分信息都已经具备了。

这个Report主要包括以下五部分......]]></description>
			<content:encoded><![CDATA[<p>Kaya 发表于 <a href="http://www.os2ora.com/">os2ora.com</a>&#160;</p>
<p>SQL Monitor Report是11g推出的一个新特性。如果说11gR1里的SQL Monitor Report已经达到可圈可点的程度，那么11gR2里的SQL Monitor Report可以说已经接近完美了。</p>
<p>这个SQL Monitor Report包含的信息比单纯的Execution Plan可全面多了，基本上，有了这份报告之后，troubleshooting所需要的大部分信息都已经具备了。</p>
<p><a href="http://www.oracle.com/technology/products/manageability/database/active_reports/samples/faq_ctas.html">这个Report</a>主要包括以下五部分:</p>
<p>1. 执行计划，包括SQL执行时年actual rows，我们一般根据它与estimate rows的吻合程度判断一个执行计划的正确与否。在10g的时候，一般可以通过hint gather_plan_statistics来让执行计划显示actural rows，而在11g中，不用相关的hint，SQL Monitor Report就能显示这部分信息了。</p>
<p><a href="http://www.os2ora.com/wp-content/uploads/2010/01/image3.png"><img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="383" alt="image" src="http://www.os2ora.com/wp-content/uploads/2010/01/image_thumb3.png" width="664" border="0" /></a> </p>
<p>2. 还是执行计划，不过没有详细的statistics，但是提供了以图形方式进行执行计划的展示。</p>
<p><a href="http://www.os2ora.com/wp-content/uploads/2010/01/image4.png"><img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="374" alt="image" src="http://www.os2ora.com/wp-content/uploads/2010/01/image_thumb4.png" width="664" border="0" /></a> </p>
<p>3. 并行进程在各个节点上的分布情况，还有每个slave进程的资源消耗情况(DB Time, wait events, physical IO, logical IO etc.)</p>
<p><a href="http://www.os2ora.com/wp-content/uploads/2010/01/image5.png"><img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="379" alt="image" src="http://www.os2ora.com/wp-content/uploads/2010/01/image_thumb5.png" width="664" border="0" /></a> </p>
<p>4. SQL对应的数据库活动情况，从这里可以看到SQL的负载特征，如在这里，这条SQL是典型的CPU密集型的SQL。</p>
</p>
<p><a href="http://www.os2ora.com/wp-content/uploads/2010/01/image6.png"><img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="385" alt="image" src="http://www.os2ora.com/wp-content/uploads/2010/01/image_thumb6.png" width="664" border="0" /></a> </p>
<p>5. 系统资源利用情况曲线图，包括CPU, IOPS, MBPS, PGA Usage, Temp Usage etc.</p>
<p><a href="http://www.os2ora.com/wp-content/uploads/2010/01/image7.png"><img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="386" alt="image" src="http://www.os2ora.com/wp-content/uploads/2010/01/image_thumb7.png" width="664" border="0" /></a> </p>
</p>
</p>
<p>可以想像，这个工具将能大幅度提高DBA的工作效率，对于离线分析SQL的执行性能带来了极大的方便。</p>
<p>一个最常提到的问题当然是如何去获取这一份Report，除了通过EM的界面去访问之外，我更趋向于用命令行的方式，这时，有两种选择</p>
<p>1. 如果想在一个SQL执行完之后马上生成SQL Monitor Report，可以简单地调用下面的脚本</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SET</span> linesize <span style="color: #cc66cc;">300</span>
<span style="color: #993333; font-weight: bold;">SET</span> pages <span style="color: #cc66cc;">50000</span>
<span style="color: #993333; font-weight: bold;">SET</span> long <span style="color: #cc66cc;">200000000</span>
<span style="color: #993333; font-weight: bold;">SET</span> longchunksize <span style="color: #cc66cc;">20000000</span>
<span style="color: #993333; font-weight: bold;">SET</span> heading off
<span style="color: #993333; font-weight: bold;">SET</span> termout off
<span style="color: #993333; font-weight: bold;">SET</span> timing off
<span style="color: #993333; font-weight: bold;">SET</span> time off
<span style="color: #993333; font-weight: bold;">SET</span> echo off
<span style="color: #993333; font-weight: bold;">SET</span> verify off
&nbsp;
define f<span style="color: #66cc66;">=</span>&amp;amp;<span style="color: #cc66cc;">1</span>
spool &amp;amp;f<span style="color: #66cc66;">..</span>html
&nbsp;
<span style="color: #993333; font-weight: bold;">SELECT</span>
DBMS_SQLTUNE<span style="color: #66cc66;">.</span>REPORT_SQL_MONITOR<span style="color: #66cc66;">&#40;</span>
session_id<span style="color: #66cc66;">=&gt;</span>sys_context<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'userenv'</span><span style="color: #66cc66;">,</span><span style="color: #ff0000;">'sid'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">,</span>
report_level<span style="color: #66cc66;">=&gt;</span><span style="color: #ff0000;">'ALL'</span><span style="color: #66cc66;">,</span>
type<span style="color: #66cc66;">=&gt;</span><span style="color: #ff0000;">'active'</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">AS</span> report
<span style="color: #993333; font-weight: bold;">FROM</span> dual;
&nbsp;
spool off</pre></div></div>

<p>&#160;</p>
<p>2. 如果想在SQL执行过程中或执行结束后在另一个session捕捉SQL Monitor Report，首先必须得到这个SQL的sql_id，然后就可以利用下面的脚本进行调用了。</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SET</span> linesize <span style="color: #cc66cc;">300</span>
<span style="color: #993333; font-weight: bold;">SET</span> pages <span style="color: #cc66cc;">50000</span>
<span style="color: #993333; font-weight: bold;">SET</span> long <span style="color: #cc66cc;">200000000</span>
<span style="color: #993333; font-weight: bold;">SET</span> longchunksize <span style="color: #cc66cc;">20000000</span>
<span style="color: #993333; font-weight: bold;">SET</span> heading off
<span style="color: #993333; font-weight: bold;">SET</span> termout off
<span style="color: #993333; font-weight: bold;">SET</span> timing off
<span style="color: #993333; font-weight: bold;">SET</span> time off
<span style="color: #993333; font-weight: bold;">SET</span> echo off
<span style="color: #993333; font-weight: bold;">SET</span> verify off
&nbsp;
<span style="color: #993333; font-weight: bold;">SELECT</span>
DBMS_SQLTUNE<span style="color: #66cc66;">.</span>REPORT_SQL_MONITOR<span style="color: #66cc66;">&#40;</span>
sql_id<span style="color: #66cc66;">=&gt;</span><span style="color: #ff0000;">'&amp;sql_id.'</span><span style="color: #66cc66;">,</span>
report_level<span style="color: #66cc66;">=&gt;</span><span style="color: #ff0000;">'ALL'</span><span style="color: #66cc66;">,</span>
type<span style="color: #66cc66;">=&gt;</span><span style="color: #ff0000;">'active'</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">AS</span> report
<span style="color: #993333; font-weight: bold;">FROM</span> dual;</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.os2ora.com/fantastic-11gr2-sql-monitor-report/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<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>
