Oracle 優化篇+查看SQL的AWR報告

說明:本文爲Oracle 11gR2中查看SQL的AWR報告的指導手冊
用途:本文只是提供一種方法和思路,更多更高級的使用方法還期待你不斷的探索哦
標籤:查看SQL的AWR報告、WORKLOAD REPOSITORY SQL Report、awrsqrpt.sql、awrsqrpi.sql
溫馨提示:如果您發現本文哪裏寫的有問題或者有更好的寫法請留言或私信我進行修改優化


★ 執行測試SQL
※ 溫馨提示:建議將測試SQL執行5次以上,否則AWR不會收集該SQL的信息
sqlplus / as sysdba
select /*tag zzt_005*/ *
  from scott.emp e, scott.dept d
 where e.deptno = d.deptno
   and empno > 7800;

★ 手動生成AWR快照
BEGIN
  DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT ();
END;
/


★ 查看業務SQL信息(本例中SQL_ID:43c4xrbk0qdvc)
sqlplus / as sysdba
select * from v$sqlarea a where lower(a.SQL_TEXT) like '%/*tag zzt_005*/%';


★ 執行AWR腳本,查看特定SQL的AWR
@$ORACLE_HOME/rdbms/admin/awrsqrpt.sql    單實例
@$ORACLE_HOME/rdbms/admin/awrsqrpi.sql    自定義實例
具體使用方法:(略)


★ HTML輸出案例截圖

★ HTML輸出案例

<html lang="en"><head><title>AWR SQL Report for DB: ORCL, Inst: ora11g, Snaps: 14-16, SQL Id: 43c4xrbk0qdvc</title>
<style type="text/css">
body.awr {font:bold 10pt Arial,Helvetica,Geneva,sans-serif;color:black; background:White;}
pre.awr  {font:8pt Courier;color:black; background:White;}
h1.awr   {font:bold 20pt Arial,Helvetica,Geneva,sans-serif;color:#336699;background-color:White;border-bottom:1px solid #cccc99;margin-top:0pt; margin-bottom:0pt;padding:0px 0px 0px 0px;}
h2.awr   {font:bold 18pt Arial,Helvetica,Geneva,sans-serif;color:#336699;background-color:White;margin-top:4pt; margin-bottom:0pt;}
h3.awr {font:bold 16pt Arial,Helvetica,Geneva,sans-serif;color:#336699;background-color:White;margin-top:4pt; margin-bottom:0pt;}
li.awr {font: 8pt Arial,Helvetica,Geneva,sans-serif; color:black; background:White;}
th.awrnobg {font:bold 8pt Arial,Helvetica,Geneva,sans-serif; color:black; background:White;padding-left:4px; padding-right:4px;padding-bottom:2px}
th.awrbg {font:bold 8pt Arial,Helvetica,Geneva,sans-serif; color:White; background:#0066CC;padding-left:4px; padding-right:4px;padding-bottom:2px}
td.awrnc {font:8pt Arial,Helvetica,Geneva,sans-serif;color:black;background:White;vertical-align:top;}
td.awrc    {font:8pt Arial,Helvetica,Geneva,sans-serif;color:black;background:#FFFFCC; vertical-align:top;}
td.awrnclb {font:8pt Arial,Helvetica,Geneva,sans-serif;color:black;background:White;vertical-align:top;border-left: thin solid black;}
td.awrncbb {font:8pt Arial,Helvetica,Geneva,sans-serif;color:black;background:White;vertical-align:top;border-left: thin solid black;border-right: thin solid black;}
td.awrncrb {font:8pt Arial,Helvetica,Geneva,sans-serif;color:black;background:White;vertical-align:top;border-right: thin solid black;}
td.awrcrb    {font:8pt Arial,Helvetica,Geneva,sans-serif;color:black;background:#FFFFCC; vertical-align:top;border-right: thin solid black;}
td.awrclb    {font:8pt Arial,Helvetica,Geneva,sans-serif;color:black;background:#FFFFCC; vertical-align:top;border-left: thin solid black;}
td.awrcbb    {font:8pt Arial,Helvetica,Geneva,sans-serif;color:black;background:#FFFFCC; vertical-align:top;border-left: thin solid black;border-right: thin solid black;}
a.awr {font:bold 8pt Arial,Helvetica,sans-serif;color:#663300; vertical-align:top;margin-top:0pt; margin-bottom:0pt;}
td.awrnct {font:8pt Arial,Helvetica,Geneva,sans-serif;border-top: thin solid black;color:black;background:White;vertical-align:top;}
td.awrct   {font:8pt Arial,Helvetica,Geneva,sans-serif;border-top: thin solid black;color:black;background:#FFFFCC; vertical-align:top;}
td.awrnclbt  {font:8pt Arial,Helvetica,Geneva,sans-serif;color:black;background:White;vertical-align:top;border-top: thin solid black;border-left: thin solid black;}
td.awrncbbt  {font:8pt Arial,Helvetica,Geneva,sans-serif;color:black;background:White;vertical-align:top;border-left: thin solid black;border-right: thin solid black;border-top: thin solid black;}
td.awrncrbt {font:8pt Arial,Helvetica,Geneva,sans-serif;color:black;background:White;vertical-align:top;border-top: thin solid black;border-right: thin solid black;}
td.awrcrbt     {font:8pt Arial,Helvetica,Geneva,sans-serif;color:black;background:#FFFFCC; vertical-align:top;border-top: thin solid black;border-right: thin solid black;}
td.awrclbt     {font:8pt Arial,Helvetica,Geneva,sans-serif;color:black;background:#FFFFCC; vertical-align:top;border-top: thin solid black;border-left: thin solid black;}
td.awrcbbt   {font:8pt Arial,Helvetica,Geneva,sans-serif;color:black;background:#FFFFCC; vertical-align:top;border-top: thin solid black;border-left: thin solid black;border-right: thin solid black;}
table.tdiff {  border_collapse: collapse; }
.hidden   {position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden;}
.pad   {margin-left:17px;}
.doublepad {margin-left:34px;}
</style></head><body class="awr">
<h1 class="awr">
WORKLOAD REPOSITORY SQL Report

</h1>
<h2 class="awr">
Snapshot Period Summary
</h2>
<p />
<table border="1" width="500" summary="This table displays database instance information">
<tr><th class="awrbg" scope="col">DB Name</th><th class="awrbg" scope="col">DB Id</th><th class="awrbg" scope="col">Instance</th><th class="awrbg" scope="col">Inst num</th><th class="awrbg" scope="col">Startup Time</th><th class="awrbg" scope="col">Release</th><th class="awrbg" scope="col">RAC</th></tr>
<tr><td scope="row" class='awrnc'>ORCL</td><td align="right" class='awrnc'>1462754487</td><td class='awrnc'>ora11g</td><td align="right" class='awrnc'>1</td><td class='awrnc'>15-Feb-20 10:02</td><td class='awrnc'>11.2.0.3.0</td><td class='awrnc'>NO</td></tr>
</table>
<p />
<table border="1" width="500" summary="This table displays snapshot information">
<tr><th class="awrnobg" scope="col"></th><th class="awrbg" scope="col">Snap Id</th><th class="awrbg" scope="col">Snap Time</th><th class="awrbg" scope="col">Sessions</th><th class="awrbg" scope="col">Cursors/Session</th></tr>
<tr><td scope="row" class='awrnc'>Begin Snap:</td><td align="right" class='awrnc'>14</td><td align="center" class='awrnc'>20-May-20 13:19:16</td><td align="right" class='awrnc'>34</td><td align="right" class='awrnc'>      1.9</td></tr>
<tr><td scope="row" class='awrc'>End Snap:</td><td align="right" class='awrc'>16</td><td align="center" class='awrc'>20-May-20 13:22:55</td><td align="right" class='awrc'>32</td><td align="right" class='awrc'>      1.9</td></tr>
<tr><td scope="row" class='awrnc'>Elapsed:</td><td class='awrnc'>&#160;</td><td align="center" class='awrnc'>               3.65 (mins)</td><td class='awrnc'>&#160;</td><td class='awrnc'>&#160;</td></tr>
<tr><td scope="row" class='awrc'>DB Time:</td><td class='awrc'>&#160;</td><td align="center" class='awrc'>               0.05 (mins)</td><td class='awrc'>&#160;</td><td class='awrc'>&#160;</td></tr>
</table>
<p />
<a class="awr" name="10603"></a>
<h3 class="awr">SQL Summary</h3>
<ul>
</ul>
<table border="1" summary="SQL Summary"><tr><th class="awrbg" scope="col">   SQL Id</th><th class="awrbg" scope="col">Elapsed  Time (ms)</th><th class="awrbg" scope="col">Module</th><th class="awrbg" scope="col">Action</th><th class="awrbg" scope="col">SQL Text</th></tr>
<tr><td class='awrc'><a class="awr" href="#1060243c4xrbk0qdvc">43c4xrbk0qdvc</a></td><td align="right" class='awrc'>10</td>
<td class='awrc'>
[email protected] (TNS V1-V3)
</td>
<td class='awrc'>&#160;
</td>
<td class='awrc'><a class="awr" href="#43c4xrbk0qdvc">select /*tag zzt_005*/ * from scott.emp e, scott.dept d where e.deptno...</a></td></tr>
</table><p />
<br /><a class="awr" href="#top">Back to Top</a><p />
<a class="awr" name="1060243c4xrbk0qdvc"></a>
<h3 class="awr">SQL ID: 43c4xrbk0qdvc</h3>
<ul>
<li class="awr"> 1st Capture and Last Capture Snap IDs    refer to Snapshot IDs witin the snapshot range</li>
<li class="awr"><a class="awr" href="#43c4xrbk0qdvc">select /*tag zzt_005*/ * from scott.emp e, scott.dept d where e.dep...</a></li>
</ul>
<table border="1" summary="SQL ID: 43c4xrbk0qdvc. . 1st Capture and Last Capture Snap IDs refer to Snapshot IDs witin the snapshot range"><tr><th class="awrbg" scope="col">#</th><th class="awrbg" scope="col">Plan Hash Value</th><th class="awrbg" scope="col">Total Elapsed Time(ms)</th><th class="awrbg" scope="col">Executions</th><th class="awrbg" scope="col">1st Capture Snap ID</th><th class="awrbg" scope="col">Last Capture Snap ID</th></tr>
<tr><td class='awrc'><a class="awr" href="#30343c4xrbk0qdvc817787759">1</a></td><td class='awrc'><a class="awr" href="#30343c4xrbk0qdvc817787759">817787759</a></td><td align="right" class='awrc'>10</td><td align="right" class='awrc'>10</td><td align="right" class='awrc'>16</td><td align="right" class='awrc'>16</td></tr>
</table><p />
<br /><a class="awr" href="#top">Back to Top</a><p />
<a class="awr" name="30343c4xrbk0qdvc817787759"></a>
<h2 class="awr">
Plan 1(PHV: 817787759)
</h2>
<ul>
<li class="awr"><a class="awr" href="#1060443c4xrbk0qdvc817787759">Plan Statistics</a></li>
<li class="awr"><a class="awr" href="#9999643c4xrbk0qdvc817787759">Execution Plan</a></li>
</ul>
<a class="awr" href="#top">Back to Top</a>
<a class="awr" name="1060443c4xrbk0qdvc817787759"></a>
<h3 class="awr">Plan Statistics</h3>
<ul>
<li class="awr"> % Total DB Time is the Elapsed Time of the SQL statement divided     into the Total Database Time multiplied by 100</li>
</ul>
<table border="1" summary="Plan Statistics. . % Total DB Time is the Elapsed Time of the SQL statement divided into the Total Database Time multiplied by 100"><tr><th class="awrbg" scope="col">Stat Name</th><th class="awrbg" scope="col">Statement Total</th><th class="awrbg" scope="col">Per Execution</th><th class="awrbg" scope="col">% Snap Total</th></tr>
<tr><td class='awrc'>Elapsed Time (ms)</td><td align="right" class='awrc'>10</td><td align="right" class='awrc'>0.95</td><td align="right" class='awrc'>0.30</td></tr>
<tr><td class='awrnc'>CPU Time (ms)</td><td align="right" class='awrnc'>8</td><td align="right" class='awrnc'>0.80</td><td align="right" class='awrnc'>0.24</td></tr>
<tr><td class='awrc'>Executions</td><td align="right" class='awrc'>10</td><td align="right" class='awrc'>&#160;</td><td align="right" class='awrc'>&#160;</td></tr>
<tr><td class='awrnc'>Buffer Gets</td><td align="right" class='awrnc'>60</td><td align="right" class='awrnc'>6.00</td><td align="right" class='awrnc'>0.38</td></tr>
<tr><td class='awrc'>Disk Reads</td><td align="right" class='awrc'>0</td><td align="right" class='awrc'>0.00</td><td align="right" class='awrc'>0.00</td></tr>
<tr><td class='awrnc'>Parse Calls</td><td align="right" class='awrnc'>3</td><td align="right" class='awrnc'>0.30</td><td align="right" class='awrnc'>0.35</td></tr>
<tr><td class='awrc'>Rows</td><td align="right" class='awrc'>60</td><td align="right" class='awrc'>6.00</td><td align="right" class='awrc'>&#160;</td></tr>
<tr><td class='awrnc'>User I/O Wait Time (ms)</td><td align="right" class='awrnc'>0</td><td align="right" class='awrnc'>&#160;</td><td align="right" class='awrnc'>&#160;</td></tr>
<tr><td class='awrc'>Cluster Wait Time (ms)</td><td align="right" class='awrc'>0</td><td align="right" class='awrc'>&#160;</td><td align="right" class='awrc'>&#160;</td></tr>
<tr><td class='awrnc'>Application Wait Time (ms)</td><td align="right" class='awrnc'>0</td><td align="right" class='awrnc'>&#160;</td><td align="right" class='awrnc'>&#160;</td></tr>
<tr><td class='awrc'>Concurrency Wait Time (ms)</td><td align="right" class='awrc'>0</td><td align="right" class='awrc'>&#160;</td><td align="right" class='awrc'>&#160;</td></tr>
<tr><td class='awrnc'>Invalidations</td><td align="right" class='awrnc'>0</td><td align="right" class='awrnc'>&#160;</td><td align="right" class='awrnc'>&#160;</td></tr>
<tr><td class='awrc'>Version Count</td><td align="right" class='awrc'>1</td><td align="right" class='awrc'>&#160;</td><td align="right" class='awrc'>&#160;</td></tr>
<tr><td class='awrnc'>Sharable Mem(KB)</td><td align="right" class='awrnc'>27</td><td align="right" class='awrnc'>&#160;</td><td align="right" class='awrnc'>&#160;</td></tr>
</table><p />
<a class="awr" href="#30343c4xrbk0qdvc817787759">Back to Plan 1(PHV: 817787759)</a>
<br /><a class="awr" href="#top">Back to Top</a><p />
<a class="awr" name="9999643c4xrbk0qdvc817787759"></a>
<h3 class="awr">
Execution Plan
</h3>
<table border="1"><tr><th class="awrbg" scope="col"> Id  </th><th class="awrbg" scope="col"> Operation                     </th><th class="awrbg" scope="col"> Name    </th><th class="awrbg" scope="col"> Rows  </th><th class="awrbg" scope="col"> Bytes </th><th class="awrbg" scope="col"> Cost (%CPU)</th><th class="awrbg" scope="col"> Time     </th></tr>
<tr><td class="awrnc">   0 </td><td class="awrnc">  SELECT STATEMENT              </td><td class="awrnc">&#160;</td><td class="awrnc">&#160;</td><td class="awrnc">&#160;</td><td class="awrnc">     5 (100)</td><td class="awrnc">&#160;</td></tr>
<tr><td class="awrc">   1 </td><td class="awrc">&#160;&#160;   MERGE JOIN                   </td><td class="awrc">&#160;</td><td class="awrc">     3 </td><td class="awrc">   174 </td><td class="awrc">     5  (20)</td><td class="awrc"> 00:00:01 </td></tr>
<tr><td class="awrnc">   2 </td><td class="awrnc">&#160;&#160;&#160;&#160;    TABLE ACCESS BY INDEX ROWID </td><td class="awrnc"> DEPT    </td><td class="awrnc">     4 </td><td class="awrnc">    80 </td><td class="awrnc">     2   (0)</td><td class="awrnc"> 00:00:01 </td></tr>
<tr><td class="awrc">   3 </td><td class="awrc">&#160;&#160;&#160;&#160;&#160;&#160;     INDEX FULL SCAN            </td><td class="awrc"> PK_DEPT </td><td class="awrc">     4 </td><td class="awrc">&#160;</td><td class="awrc">     1   (0)</td><td class="awrc"> 00:00:01 </td></tr>
<tr><td class="awrnc">   4 </td><td class="awrnc">&#160;&#160;&#160;&#160;    SORT JOIN                   </td><td class="awrnc">&#160;</td><td class="awrnc">     3 </td><td class="awrnc">   114 </td><td class="awrnc">     3  (34)</td><td class="awrnc"> 00:00:01 </td></tr>
<tr><td class="awrc">   5 </td><td class="awrc">&#160;&#160;&#160;&#160;&#160;&#160;     TABLE ACCESS BY INDEX ROWID</td><td class="awrc"> EMP     </td><td class="awrc">     3 </td><td class="awrc">   114 </td><td class="awrc">     2   (0)</td><td class="awrc"> 00:00:01 </td></tr>
<tr><td class="awrnc">   6 </td><td class="awrnc">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;      INDEX RANGE SCAN          </td><td class="awrnc"> PK_EMP  </td><td class="awrnc">     3 </td><td class="awrnc">&#160;</td><td class="awrnc">     1   (0)</td><td class="awrnc"> 00:00:01 </td></tr>
</table>
<p />
<a class="awr" href="#30343c4xrbk0qdvc817787759">Back to Plan 1(PHV: 817787759)</a>
<br /><a class="awr" href="#top">Back to Top</a><p />
<a class="awr" name="99997"></a>
<p />
<h3 class="awr">Full SQL Text</h3><p />
<table border="1" summary="This table displays the text of the SQL statements which have been
      referred to in the report">
<tr><th class="awrbg" scope="col">SQL Id</th><th class="awrbg" scope="col">SQL Text</th></tr>
<tr><td scope="row" class='awrc'><a class="awr" name="43c4xrbk0qdvc"></a>43c4xrbk0qdvc</td><td class='awrc'>select /*tag zzt_005*/ * from scott.emp e,  scott.dept d where e.deptno = d.deptno and empno &gt; 7800</td></tr>
</table>
<p />
<br /><a class="awr" href="#top">Back to Top</a><p />
</body></html>

 

※ 如果您覺得文章寫的還不錯, 別忘了在文末給作者點個贊哦 ~

over

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章