Search code examples
sqlperformanceoracle-databasesql-optimization

understanding tracefile generated from tkprof


hey guys i am learning query optimization with oracle 10g, and having some trouble understanding the file below. could some anyone please explain the file below, its a trace file of query i ran. i know what CPU and elapsed time is (time a query takes to fetch data from database) but unsure about "disk" and "query".

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

Solution

  • I have written an article about this in the past - if you are starting out this may be useful to you:

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

    In the tkprof output, the DISK column indicates how many blocks were read from disk, and is equivalent to PHYSICAL READS in the autotrace output.

    The QUERY column is the number of logical I/O operations required to answer the query, which may have come from the buffer cache or disk. This is equivalent to the CONSISTENT GETS stat in autotrace.

    The CURRENT column indicates the number of blocks gotten in current mode, and are usually required for updates.