【江枫】使用_px_trace跟踪分析并行执行的情况

上一篇 / 下一篇  2008-04-08 10:54:58

并行在系统资源充足的情况下,可以极大的加快操作的速度,在数据仓库环境中应用较多。而在OLTP环境中,由于并发较大,开启并行可能瞬间导致资源耗尽,所以一般只有在业务低估期间执行一些诸如创建索引等维护操作时才会考虑开启并行,并且在执行完成后去掉对象的并行度,否则可能后果很严重。

由于并行涉及到多个进程间分配协调任务,往往比较容易出现各种各样的问题,而且从数据字典中比较难以定位到具体的原因。Oracle提供了一些event来trace并行过程,如10384,10390,10399等等,但是这些event往往无法trace整个的并行过程,有时候需要设置多个event才能trace到我们需要的内容。而_px_trace则提供了一个统一的trace入口,并且有些信息还是event无法trace到的。

语法如下:

alter session set "_px_trace"=[[Verbosity,]area],[[Verbosity,]area],..,[time];
  • Verbosity表示trace信息的详细程度,取值为high,medium,low
  • area表示trace的区域,取值scheduling,execution,granul,messaging,buffer,compilation,all,none
  • time表示是否在trace中包含时间信息
SQL> alter session set "_px_trace"="compilation","execution","messaging","time";

会话已更改。

SQL> select count(*) from test;

  COUNT(*)
----------
     11846

SQL> alter session set "_px_trace"="none";

会话已更改。

生成的trace文件比较多,qc和slave进程都会生成相应的trace文件。具体的trace信息分析我这里就不写了,有兴趣的可以参考Metalink(Note:444164.1)

--EOF--

作者:江枫| 【转载时请务必以超链接形式标明文章原始出处和作者信息及本声明】
地址:http://rdc.taobao.com/blog/dba/html/121_tracing_parallel_execution_with_px_trace.html


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

我的栏目

日历

« 2008-10-11  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 14106
  • 日志数: 110
  • 建立时间: 2008-03-27
  • 更新时间: 2008-06-24

RSS订阅

Open Toolbar