Errata

Optimizing Oracle Performance

Errata for Optimizing Oracle Performance

Submit your own errata for this product.

The errata list is a list of errors and their corrections that were found after the product was released.

The following errata were submitted by our customers and have not yet been approved or disproved by the author or editor. They solely represent the opinion of the customer.

Color Key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update

Version Location Description Submitted by Date submitted
Printed Page 91
First Paragraph (Indention)

The text says "A database call with dep=n+1 is the recursive child of the first subsequent dep=n
database call listed in the SQL trace data stream".

This is not always the case! Sometimes the recursive statements are after the user statement,
sometimes they are before.

It appears that Select and DML usually have their recursive children before the user statement, while
DDL and PL/SQL usually (always?) have their recursive children after the user statement. But I have
even seen a case with a simple "Select * from dual" where the recursive statement comes AFTER the
user statement.

I would post my trace files here but I fear that this web form wouldn't take that much data. I would
be happy to email some files if anyone is interested in seeing them.

I have been unable to find a rule that is always correct in identifying user/recursive statement
relationships. I would very much like to!

Note from the Author or Editor:
We would love for you to send your trace data to us. You can reach us at the mail id "info" at method-r.com.

Anonymous   
Printed Page 91
First paragraph below the highlighted (8) PARSE line

The rule for determining the recursive relationship among database calls is defined as "A database
call with dep=n+1 is the recursive child of the first subsequent dep=n database call listed in the
SQL trace data stream".

I have found that this is not always the case. In a 9i trace file I have recursive SQL appearing
AFTER the dep=0 SQL and also recursive SQL appearing BEFORE the dep=0. My own (admittedly limited)
investigation has shown that :

* If the cursor has DEP=0 and OCT in (2,3,6,7) then the recursive SQL statement(s) appear BEFORE the
DEP=0 cursor in the trace file, as per the above rule.

* If the OCT is any other value (ie DDL as opposed to DML) then the recursive SQL appears in the
trace file AFTER the DEP=0. Which is in opposition to the above rule.

It seems as if DDL statements are traced differently than DML. I have not yet traced any PL/SQL to
see if that adheres to the rule or not.

Anonymous