February 2012
M T W T F S S
« Aug    
 12345
6789101112
13141516171819
20212223242526
272829  

如何分析AWR (4)

Kaya 发表于 os2ora.com

如果这个系列是按“总-分-总”组织的话,接下来的系列应该是进行“分”这一部分了。

构建DSS系统的第一步离不开数据加载,通过文本文件加载是最常见的方式,Oracle提供了外部表加载的方法,即把一个文本文件当成一个正常的表来进行操作,通过类似insert /*+ append */ into table select from external_table的方式进行加载。

数据加载是一个CPU-Bound的过程,不过是通过什么工具,external table也好,sqlldr也好,imp也好,impdp也好。换句话说,如果连数据加载都出现IO瓶颈,这个系统的配置就说不过去了。

这个过程的AWR报告会是怎么样子的呢?

先做个一般的假定,从外部表加载数据到一个本地分区表。

Top 5 Timed Events类似下面:

image

如果去抓取这段时间DBA_HIST_ACTIVE_SESS_HISTORY的数据,并转换为图表的话,我们会得到更形象的Top 10 Wait Events.

(如何实现这一步可以参考用Oracle实现ASH的数据透视图

image

enq: HV – contention是什么东西呢?

在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 – contention。在执行计划中,这以RANDOM LOCAL 标记。下面是一个例子:

--------------------------------------------------------------------------------------------------------------------------
| Id  | Operation                        | Name     | Rows  | Bytes | Cost (%CPU)| Time     |    TQ  |IN-OUT| PQ Distrib |
--------------------------------------------------------------------------------------------------------------------------
|   0 | INSERT STATEMENT                 |          |  8168 |    14M|     2   (0)| 00:00:01 |        |      |            |
|   1 |  PX COORDINATOR                  |          |       |       |            |          |        |      |            |
|   2 |   PX SEND QC (RANDOM)            | :TQ10001 |  8168 |    14M|     2   (0)| 00:00:01 |  Q1,01 | P->S | QC (RAND)  |
|   3 |    LOAD AS SELECT                | TAB      |       |       |            |          |  Q1,01 | PCWP |            |
|   4 |     PX RECEIVE                   |          |  8168 |    14M|     2   (0)| 00:00:01 |  Q1,01 | PCWP |            |
|   5 |      PX SEND RANDOM LOCAL        | :TQ10000 |  8168 |    14M|     2   (0)| 00:00:01 |  Q1,00 | P->P | RANDOM LOCA|
|   6 |       PX BLOCK ITERATOR          |          |  8168 |    14M|     2   (0)| 00:00:01 |  Q1,00 | PCWC |            |
|   7 |        EXTERNAL TABLE ACCESS FULL| ET_TAB   |  8168 |    14M|     2   (0)| 00:00:01 |  Q1,00 | PCWP |            |
--------------------------------------------------------------------------------------------------------------------------

一个好消息是,11.2引入了一种新的方式,叫做PKEY distribution。在这种方式下,一个特定的分区只交给一个或多个特定的PX slave负责,这种方式不仅减少了对high water mark的争用,而且可以实现partition内更好的压缩率。

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

您也可以使用微博账号登陆