Sql Oracle并行查询等待统计信息不在tkprof';s报告

Sql Oracle并行查询等待统计信息不在tkprof';s报告,sql,performance,oracle,parallel-processing,oracle10g,Sql,Performance,Oracle,Parallel Processing,Oracle10g,我正在调优一个使用了大量IO的查询(LIO大约有数百万个)。查询使用了一个巨大表上的索引。为了进行实验,我使用full-hint强制对该表进行完全扫描,并使用PARALLEL-hint对扫描进行并行化。我的实验是成功的,因为查询速度快了几个数量级(大约3倍)。但我无法在tkprof的报告和dbms_xplan.display_游标中看到并行查询的缓冲区get/物理读取。它们显示为0 根据我从几个站点读取的内容,这可能是由于使用不同的IO(直接路径IO)进行并行查询,该IO绕过缓冲区缓存,直接从磁

我正在调优一个使用了大量IO的查询(LIO大约有数百万个)。查询使用了一个巨大表上的索引。为了进行实验,我使用full-hint强制对该表进行完全扫描,并使用PARALLEL-hint对扫描进行并行化。我的实验是成功的,因为查询速度快了几个数量级(大约3倍)。但我无法在tkprof的报告和dbms_xplan.display_游标中看到并行查询的缓冲区get/物理读取。它们显示为0


根据我从几个站点读取的内容,这可能是由于使用不同的IO(直接路径IO)进行并行查询,该IO绕过缓冲区缓存,直接从磁盘读取到PGA。然而,这意味着直接路径IO等待事件应该显示在tkprof的报告中(10046跟踪事件,级别8),除非它没有!因此,我的问题是——如何查找和测量并行查询引起的等待?

当执行并行查询时,每个并行从机都是一个不同的会话。主会话是查询协调器,负责协调工作,但不执行任何操作。因此,您需要跟踪并行查询从机以查看这些等待

如果您至少在11g上,您可以
alter session set events'sql_trace level 12'

您可能还需要设置
tracefile\u标识符
,以帮助查找相关的跟踪文件

有关详情,请参阅:


希望能有所帮助。

谢谢。链接解释了这一切。