使用_px_trace跟踪分析并行执行的情况
常用标签:

使用_px_trace跟踪分析并行执行的情况

并行在系统资源充足的情况下,可以极大的加快操作的速度,在数据仓库环境中应用较多。而在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)

bookmark

本文网址:http://www.ningoo.net/html/2008/tracing_parallel_execution_with_px_trace.html

如果您喜欢我的Blog,欢迎订阅到Google | 收藏到Del.icio.us | 推荐到鲜果

相关文章 随机文章

本文Tags: ,

没有评论


(Required)
(Required, will not be published)