了解从tkprof生成的tracefile

时间:2011-10-26 19:34:33

标签: sql performance oracle sql-optimization

嘿伙计们我正在学习oracle 10g的查询优化,并且在理解下面的文件时遇到一些麻烦。 有人可以解释下面的文件,它是我运行的查询的跟踪文件。 我知道CPU和已用时间是什么(查询从数据库中获取数据所需的时间) 但不确定“磁盘”和“查询”。

call     count       cpu    elapsed       disk      query    current  rows
------- ------  -------- ---------- ---------- ---------- ----------  -------
Parse        1      0.00       0.00          0          0          0     0
Execute      1      0.00       0.00          0          0          0     0
Fetch     9001      0.17       0.15       1812      16205          0   134999
------- ------  -------- ---------- ---------- ---------- ----------  -------
total     9003      0.17       0.15       1812      16205          0   134999

1 个答案:

答案 0 :(得分:2)

我过去曾写过一篇关于此事的文章 - 如果你刚开始这可能对你有用:

http://betteratoracle.com/posts/14-sql-trace-and-tkprof

在tkprof输出中,DISK列表示从磁盘读取的块数,相当于autotrace输出中的PHYSICAL READS。

QUERY列是回答查询所需的逻辑I / O操作数,可能来自缓冲区缓存或磁盘。这相当于autotrace中的CONSISTENT GETS统计信息。

CURRENT列表示在当前模式下获取的块数,通常是更新所需的块。